%20%E3%83%90%E3%82%A4%E3%83%88%E3%81%A7%E3%81%99%E3%81%8B%E3%80%81%E3%81%9D%E3%82%8C%E3%81%A8%E3%82%82%201024%20(%E6%97%A7%E5%BC%8F)%20%E3%83%90%E3%82%A4%E3%83%88%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
からman time
:
M Maximum resident set size of the process during its lifetime, in Kilobytes.
からulimit -a
:
max memory size (kbytes, -m) unlimited
しかし、「キロバイト」は1000バイトまたは1024バイトを意味する場合があるここでは 1024 と推測しますが、確認したいです。信頼できる参考文献があれば幸いです。
私の質問を次のように言い換えてください。IEC勧告に従って行うtime
かulimit
、キビバイトの意味で「キロバイト/キロバイト」を使用する。
答え1
パーman 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).
パーinfo 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.
の出力はls
ソースにさらにバックアップされますここそしてここ。
1文字は1024の測定値であるように見えます。2つの桁文字の略語は SI 単位の 1000 です。
bashに組み込まれているのでulimit
、ソースにアクセスするのが決定的なソースです。私はよくしゃれを言いますが、ここそしてここ:
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.
おそらくあなたのバージョンはbash-5.2-rc3より古いでしょうが、それは問題ありません。そのアイテムのサイズは4.0.38がリリースされてから少なくとも10年間変わっていません。ここそしてここ。
編集:のマニュアルページではunits.7
これを詳しく説明していますが、ユニットポリシー。
答え2
答え3
あキロバイト1000バイト(SI接頭辞は千を意味する)である。キビバイト1024 バイト (キロバイナリを意味する IEC プレフィックス)。
この規則は 1998 年から使用されていますが、これらの接頭辞の使用法は十分に知られていないようです。
これは、1 TB (テラバイト) のハードディスクが、ファイルシステムによって報告される 0.91 TiB (テビバイト) しかない理由でもあります。
関連する問題として、著者が数値が「キロバイト」これは公式の宣言ではないので、どちらを意味しているのかわからない。
ヘルプページには次のようにulimit
書かれています:「値は1024バイト単位で増加します」、私は彼らが実際に意味していると仮定しても安全だと思いますキビバイト彼らが書くときキロバイト。
一方、はman time
明示的に値がキロバイト、著者はキロバイトが何であるかを知っており、実際に 1000 バイトを意味していると仮定する必要があります。
ただし、いずれにしても、作者が明らかに間違ったことを書いていないことを 100% 確実にするには、ソースコードを確認するか、プログラムの作成者に相談する必要があります。
参考文献: