mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-19 18:26:32 +02:00
ls -U1 now uses constant memory
When printing one name per line and not sorting, ls now uses constant memory per directory, no matter how many files are in the directory. * ls.c (print_dir): Print each file name immediately, when possible. * NEWS: Mention the improvement.
This commit is contained in:
committed by
Jim Meyering
parent
b44f5f74aa
commit
8d974b00fb
3
NEWS
3
NEWS
@@ -51,6 +51,9 @@ GNU coreutils NEWS -*- outline -*-
|
|||||||
|
|
||||||
join has significantly better performance due to better memory management
|
join has significantly better performance due to better memory management
|
||||||
|
|
||||||
|
ls now uses constant memory when not sorting and using one_per_line format,
|
||||||
|
no matter how many files are in a given directory
|
||||||
|
|
||||||
od now aligns fields across lines when printing multiple -t
|
od now aligns fields across lines when printing multiple -t
|
||||||
specifiers, and no longer prints fields that resulted entirely from
|
specifiers, and no longer prints fields that resulted entirely from
|
||||||
padding the input out to the least common multiple width.
|
padding the input out to the least common multiple width.
|
||||||
|
|||||||
14
src/ls.c
14
src/ls.c
@@ -2402,6 +2402,20 @@ print_dir (char const *name, char const *realname, bool command_line_arg)
|
|||||||
#endif
|
#endif
|
||||||
total_blocks += gobble_file (next->d_name, type, D_INO (next),
|
total_blocks += gobble_file (next->d_name, type, D_INO (next),
|
||||||
false, name);
|
false, name);
|
||||||
|
|
||||||
|
/* In this narrow case, print out each name right away, so
|
||||||
|
ls uses constant memory while processing the entries of
|
||||||
|
this directory. Useful when there are many (millions)
|
||||||
|
of entries in a directory. */
|
||||||
|
if (format == one_per_line && sort_type == sort_none)
|
||||||
|
{
|
||||||
|
/* We must call sort_files in spite of
|
||||||
|
"sort_type == sort_none" for its initialization
|
||||||
|
of the sorted_file vector. */
|
||||||
|
sort_files ();
|
||||||
|
print_current_files ();
|
||||||
|
clear_files ();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (errno != 0)
|
else if (errno != 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user