%20ou%201024%20(old%20school)%20bytes%3F.png)
De man time
:
M Maximum resident set size of the process during its lifetime, in Kilobytes.
De ulimit -a
:
max memory size (kbytes, -m) unlimited
Mas um"kilobyte" pode significar 1000 ou 1024 bytes. Acho que aqui é uma volta de 1024, mas quero ter certeza. Referência oficial seria apreciada.
Sinta-se à vontade para reformular minha pergunta como:faça time
e ulimit
esteja em conformidade com a recomendação IEC ou use "kilobyte/kbyte" no significado de kibibyte.
Responder1
Porman dir.1
:
The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
Porinfo ls
:
‘-h’
‘--human-readable’
Append a size letter to each size, such as ‘M’ for mebibytes. Powers of 1024 are used, not 1000; ‘M’ stands for 1,048,576 bytes. This option is equivalent to --block-size=human-readable. Use the --si option if you prefer powers of 1000.
A saída para ls
é posteriormente copiada na fonteaquieaqui.
Parece que a única letra é a medida 1024. Os doisdígitoas abreviaturas dos caracteres são as 1000 unidades SI.
Como ulimit
está embutido no bash, ir até a fonte é a fonte definitiva. Muitas vezes sou insignificante, mas você pode ver issoaquieaqui:
Values are in 1024-byte increments, except for -t, which is in seconds,
-p, which is in increments of 512 bytes, and -u, which is an unscaled
number of processes.
Sua versão provavelmente é mais antiga que o bash-5.2-rc3, o que é bom, o tamanho desse item não mudou pelo menos na última década desde o lançamento do 4.0.38. Você pode ver issoaquieaqui.
Editar: a página de manual units.7
explica isso em detalhes, mas parece ser bastante confuso desde o inícioPolítica de Unidades.
Responder2
Não, kilobytes são 1000. Seguimos oSistema Internacional de Unidadesportanto, o prefixo "quilo" refere-se a 1000 e não a 1024. Qualquer outra referência está errada.
1024 éQuibibytes(kieisbinada)
De ulimit -a:
tamanho máximo de memória (kbytes, -m) ilimitado
Isso eu considero um bug. Deve indicar explicitamente quilo ou kibi; não kbytes
hora do homem:
M Tamanho máximo do conjunto de residentes do processo durante seu tempo de vida, em Kilobytes.
Responder3
Aquilobyteé 1000 bytes (prefixo SI significa mil). Aquibibyteé 1024 bytes (prefixo IEC que significa quilo binário).
Esta convenção tem sido usada desde 1998, mas acho que o uso desses prefixos não é tão conhecido como deveria ser.
É também por isso que um disco rígido de 1 TB (terabyte) tem apenas 0,91 TiB (tebibytes, conforme relatado pelo sistema de arquivos).
Uma questão relacionada é quando os autores afirmam que um número é dado em"kbytes". Como esta não é uma declaração oficial, você não sabe se elas significam uma ou outra.
Já que a ulimit
página de ajuda diz:"Os valores estão em incrementos de 1.024 bytes", acredito que é seguro assumir que eles de fato significamquibibytesquando eles escreveremkbytes.
Por outro lado, uma vez que man time
afirma explicitamente que os valores estão emquilobytes, seria necessário presumir que os autores sabem o que é um kilobyte e que de fato significam 1000 bytes.
Em qualquer caso, porém, para ter 100% de certeza de que os autores não escreveram nada que seja explicitamente errado, você deve verificar o código-fonte ou consultar o autor do programa.
Referências: