Contexts
Contexts
Posted Jul 19, 2022 22:50 UTC (Tue) by nybble41 (subscriber, #55106)In reply to: Contexts by geert
Parent article: Native Python support for units?
RAM manufacturers, on the other hand, stuck mostly to binary sizes since RAM modules scale based on the number of address and data lines. The exception would be the modules with an odd number of data lines intended for parity or ECC bits... but the usable space after ECC is still generally a power of two.
The SI unit for information is the *bit*. Insisting on the SI definition of "kilo" with *bytes* as the base unit makes no sense; in pure SI terms you're measuring in multiples of 8,000 (or 8,000,000 etc.) SI base units, not powers of 1,000. The prefixes used for SI units can have other meanings in different contexts; no one insists that a microservice must be exactly one-millionth of a service, for example.
Unfortunately this has been muddied to the point that a simple "KB" or "kilobyte" can never again be considered unambiguous, so when precision matters I suggest using "KiB" for "binary kilobyte" or "KeB" for "decimal kilobyte". Forget about "kibibyte"; that just sounds stupid. (But if you insist-- the decimal equivalent can only be "kedebyte".) Or you can measure the data in bits rather then bytes, with an unambiguous SI decimal prefix.
Posted Jul 20, 2022 7:00 UTC (Wed)
by geert (subscriber, #98403)
[Link] (8 responses)
Posted Jul 22, 2022 1:38 UTC (Fri)
by nybble41 (subscriber, #55106)
[Link] (7 responses)
Within the SI system, sure. But as I said, bytes are not an SI unit, so SI prefixes do not apply. In another context the "kilo" prefix can easily mean something else entirely—even 1024.
Practically speaking, "kB" or "kilobyte" means either 1024 bytes (the traditional version dating back to the early days of binary computers, and an integer power of two in bits) or 1000 bytes (the new version coerced into the ill-fitting SI system, mixing base-2 and base-10 to arrive at 8,000 bits). A reader can't tell which you meant, so if the difference between 1024 and 1000 matters at all then you should avoid the term altogether. I only offered an unambiguous alternative modeled on the KiB / "kibibyte" nomenclature. It's not SI but it does a far better job of communicating the intent.
If you want to stick with SI, don't talk about bytes. The SI base unit for information is the bit.
Posted Jul 22, 2022 2:49 UTC (Fri)
by rschroev (subscriber, #4164)
[Link]
Kilo meaning 1024 is the new version invented in the early days of binary computers, already wrong and in conflict with both existing standards and the Greek word χίλιοι (chilioi) it's derived from literally meaning 1000.
Kilo meaning 1000 is the traditional version, consistent with existing usage dating back to the end of the 18th century, long before the rise of binary computers; and consistent with the Greek word going back a few thousand years further still.
Posted Jul 30, 2022 4:16 UTC (Sat)
by JanC_ (guest, #34940)
[Link] (5 responses)
The only problem with using bytes is that the size of a byte is not fixed (it is hardware-dependent), so you have to specify somewhere what size the bytes you are talking about are…
It would have been much better if English language computer engineers had used 'octet' for “modern” 8-bit bytes instead (as the French do).
Posted Jul 30, 2022 9:27 UTC (Sat)
by mpr22 (subscriber, #60784)
[Link] (3 responses)
Outside of what are now very niche contexts, this is not a serious concern.
Posted Jul 30, 2022 11:36 UTC (Sat)
by Wol (subscriber, #4433)
[Link] (2 responses)
Niche contexts ... like networking?
I was always under the impression that you can't divide your networking kb by 8 to get your data transfer kB, because an 8-bit data byte is about a 10-bit network byte ...
(or is it because the b in networking stands for baud which is most definitely not a bit ...)
Cheers,
Posted Jul 30, 2022 13:47 UTC (Sat)
by pizza (subscriber, #46)
[Link]
That's still a good rule of thumb, as when you factor in network/protocol overhead, it works out pretty consistently:
10Mbps =~ 1MB/s, 100Mbps =~ 10MB/s, 1000MBps =~ 100MB/s
(Over 1Gbps it tends to fall off somewhat; for example the most I recall getting using 10Gbps fiber (and 9K jumbo frames) was about 550MB/s, though that was probably CPU bound as I was using 'scp')
Posted Jul 30, 2022 19:29 UTC (Sat)
by mpr22 (subscriber, #60784)
[Link]
It depends on where the network technology's speed rating is measured.
For example, 100BASE-TX's rated speed of 100 Mbit is measured in terms of the 25MHz 4-bit parallel data stream fed to the MII, not the 125 MHz run-length-limited serial data stream the 4b5b encoder behind the MII feeds to the MLT-3 encoder that generates the three-level waveform seen on the wire.
Of course, 100 Mb/s of packet data transfer doesn't translate into 12.5 MB/s of actual application data transfer, because of the protocol overheads imposed by various layers.
Posted Jul 30, 2022 15:42 UTC (Sat)
by smurf (subscriber, #17840)
[Link]
Contexts
Contexts
Contexts
Contexts
Contexts
Contexts
Wol
Contexts
Contexts
Contexts