const int FOLDER_IN_FOLDER_DEPTH = 24;
const int ELEMENTS_IN_FOLDER = 4096;
char** folders;
void create_folders(int _depth)
{
int rv;
if(_depth >= FOLDER_IN_FOLDER_DEPTH)
{
return;
}
for(int subfolder = 0; subfolder < ELEMENTS_IN_FOLDER; ++subfolder)
{
rv = mkdir(folders[subfolder], S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
if(rv)
{
printf("Error: %d", rv);
}
chdir(folders[subfolder]);
create_folders(_depth+1);
chdir("..");
}
}
Запустил на
rezdm@rezdm-sol:~$ uname -a
SunOS rezdm-sol 5.11 snv_111b i86pc i386 i86pc Solaris
Работало приблизительно так:
CPU states: 63.1% idle, 4.7% user, 32.2% kernel, 0.0% iowait, 0.0% swap
Бежало 76 минут, недобежало до конца (только элементы первого "рутового" фолдера, и то не все), попытался сделать rezdm@rezdm-sol:~$ find . -type d | wc -l. Долго бежало, но устал ждать. Попытался удалить, бежало 19 часов:
rezdm@rezdm-sol:~/space/test/x$ time rm -rf 00000
real 1193m34.916s
user 9m43.436s
sys 260m36.124s
Сколько места заняло создание фолдеров:
До удаления:
rezdm@rezdm-sol:~/space/test/x$ df -h .
Filesystem Size Used Avail Use% Mounted on
tank/space 898G 317G 582G 36% /tank/space
После удаления:
rezdm@rezdm-sol:~/space/test/x$ df -h .
Filesystem Size Used Avail Use% Mounted on
tank/space 898G 279G 620G 31% /tank/space
Диск:
rezdm@rezdm-sol:~$ iostat -En c9d0
c9d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: ST31000528AS Revision: Serial No: 9VP Size: 1000.20GB <1000202305536 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
No comments:
Post a Comment