On 8/24/2024 2:13 AM, Lawrence D'Oliveiro wrote:
On Fri, 23 Aug 2024 02:31:46 -0500, BGB wrote:
On 8/22/2024 9:36 PM, Lawrence D'Oliveiro wrote:
>
On Thu, 22 Aug 2024 15:59:34 -0500, BGB wrote:
>
Underused: It is a sensible way of structuring data, but needing to
interface with it though SQL strings is awkward and inefficient.
>
Actually, that works fine in any language with decent string handling.
>
String processing adds bulk and inefficiency.
Granted, maybe not enough to matter in the face of a typical database
query.
Remember what Knuth (or maybe it was Hoare) said: “Premature optimization
is the root of all evil”. String processing has to be in the language for
other reasons (think: composing messages and processing input when
interacting with a human user), why not use it for this?
Also, it is quite common now to use text-based protocols for networks
(e.g. messages in JSON format). That may sound inefficient, but it eases
debugging so much, that has become a major consideration.
I think that saying is also over applied.
For example, in my recent poking around with fonts, I got around a 30x reduction by converting from UFO / GLIF to a custom format.
Where, say, the GLIF fonts were typically several MB, and the converted fonts were ~ 80-200K.
Main source of difference:
The GLIF files are basically raw XML.
If you take a line like:
<point x="307" y="-110" type="curve" smooth="yes"/>
And reduce it to 4 bytes, this saves some bytes...
Premature optimization is more a problem when applied to contexts where one is only likely to save maybe 5% or 10%.
Or, potentially misguided things like trying to write everything in assembler rather than writing stuff in C, or in contexts where it is unlikely to effect overall performance.
As far as I am concerned, it is misapplication in cases where there is likely to be a significant or drastic cost difference.
But, I was left thinking, some programs use SQLite, which exists as a
single giant C file. I guess it technically works, but has the downside
of adding something like IIRC around 900K or so to the size of the
binaries' ".text" section.
SQLite is so resource-light, it’s the world’s most popular DBMS. You
almost certainly have a copy literally at your fingertips right now, in
your mobile phone.
My cellphone also has 32x as much RAM and 46x faster clock speed than the BJX2 core running on the FPGA boards I have...
A cellphone is not a good metric of "lightweight" by the factors I am considering...
I am not inclined to use it directly because (if added to TestKern) it would roughly triple the size of the kernel.
It also weighs in at several times that of the Doom engine (in code size), and even for a small database may use multiple MB of RAM (vs, say, having a database engine that operates in KB territory).
I don't really consider this to be particularly lightweight.
OTOH:
Decided to poke at it, was able to implement a simplified "vaguely JPEG like" image format in around 500 lines for the decoder (or, around 1/4 the size of my past JPEG decoder).
Ended up going with:
AdRice+STF for the entropy coder;
This simplified the encoder by allowing a single-pass design.
Block Haar Transform
Vaguely similar to Walsh Hadamard Transform,
but differs in the specifics.
Colorspace: Y=(4G+3R+B)/8, U=B-Y, V=R-Y
Fixed-layout macroblocks with 4:2:0 chroma subsampling.
A superficially similar scheme for encoding blocks of coefficients.
...
Interestingly, Q/bpp doesn't seem to be that far off from JPEG.
Also does not need big intermediate arrays or buffers (apart from the input and output buffers, needs less than 1K of working intermediate memory; most of this going into the entropy coding and quantization tables).
AdRice+STF is basically dynamically a adaptive Golumb-Rice coding scheme, with a Swap-Towards-Front symbol transform. This allows it to minic something like Huffman.
It is not usually as good as static Huffman (with a 13-bit symbol length limit) in terms of speed or compression, but has some other properties (smaller memory use; dynamically adaptive; small/simple code).
Also, unlike biwise range-coding, or FGK / Vitter (Adaptive Huffman), is not horridly slow...
But, seemingly, I am not aware of anyone else making much use combining symbol-swapping with Rice coding, but I have often tended to have decently good results with it.
Date | Sujet | # | | Auteur |
14 Aug 24 | Article on new mainframe use | 132 | | Stephen Fuld |
14 Aug 24 | Re: Article on new mainframe use | 124 | | MitchAlsup1 |
15 Aug 24 | Re: Article on new mainframe use | 123 | | George Neuner |
15 Aug 24 | Re: Article on new mainframe use | 1 | | Stephen Fuld |
15 Aug 24 | Re: Article on new mainframe use | 121 | | MitchAlsup1 |
15 Aug 24 | Re: Article on new mainframe use | 1 | | Stephen Fuld |
15 Aug 24 | Re: Article on new mainframe use | 118 | | Niklas Holsti |
16 Aug 24 | Re: Article on new mainframe use | 117 | | Lawrence D'Oliveiro |
16 Aug 24 | Re: COBOL, Article on new mainframe use | 30 | | John Levine |
17 Aug 24 | Re: COBOL, Article on new mainframe use | 5 | | Lawrence D'Oliveiro |
17 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | John Levine |
17 Aug 24 | Re: COBOL, Article on new mainframe use | 3 | | Keith Thompson |
18 Aug 24 | Re: coroutines in COBOL, Article on new mainframe use | 2 | | John Levine |
18 Aug 24 | Re: coroutines in COBOL, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
18 Aug 24 | Re: COBOL, Article on new mainframe use | 24 | | OrangeFish |
18 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | John Levine |
18 Aug 24 | Re: COBOL, Article on new mainframe use | 22 | | John Dallman |
18 Aug 24 | Re: COBOL, Article on new mainframe use | 14 | | MitchAlsup1 |
19 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | John Dallman |
23 Aug 24 | Re: COBOL, Article on new mainframe use | 12 | | Terje Mathisen |
23 Aug 24 | Re: COBOL, Article on new mainframe use | 11 | | Michael S |
23 Aug 24 | Re: COBOL, Article on new mainframe use | 10 | | Terje Mathisen |
23 Aug 24 | Re: COBOL, Article on new mainframe use | 9 | | Michael S |
23 Aug 24 | Re: COBOL, Article on new mainframe use | 6 | | John Levine |
24 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
27 Aug 24 | Re: COBOL, Article on new mainframe use | 4 | | Keith Thompson |
28 Aug 24 | Re: COBOL, Article on new mainframe use | 3 | | MitchAlsup1 |
28 Aug 24 | Re: COBOL, Article on new mainframe use | 2 | | Keith Thompson |
2 Sep 24 | Re: COBOL, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
24 Aug 24 | Re: COBOL, Article on new mainframe use | 2 | | John Dallman |
28 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
19 Aug 24 | Re: COBOL, Article on new mainframe use | 7 | | Lawrence D'Oliveiro |
19 Aug 24 | Re: COBOL, Article on new mainframe use | 6 | | John Levine |
21 Aug 24 | Re: COBOL, Article on new mainframe use | 5 | | Lawrence D'Oliveiro |
21 Aug 24 | Re: COBOL, Article on new mainframe use | 4 | | Keith Thompson |
21 Aug 24 | Re: COBOL, Article on new mainframe use | 3 | | MitchAlsup1 |
21 Aug 24 | Re: COBOL, Article on new mainframe use | 1 | | Keith Thompson |
2 Sep 24 | Re: COBOL, Article on new mainframe use | 1 | | Tim Rentsch |
16 Aug 24 | Re: Article on new mainframe use | 82 | | George Neuner |
22 Aug 24 | Re: Article on new mainframe use | 81 | | BGB |
23 Aug 24 | Re: Article on new mainframe use | 1 | | Stephen Fuld |
23 Aug 24 | Re: Article on new mainframe use | 79 | | Lawrence D'Oliveiro |
23 Aug 24 | Re: Article on new mainframe use | 77 | | BGB |
23 Aug 24 | Re: libraries, was Article on new mainframe use | 1 | | John Levine |
24 Aug 24 | Re: Article on new mainframe use | 75 | | Lawrence D'Oliveiro |
24 Aug 24 | Re: Article on new mainframe use | 1 | | BGB |
24 Aug 24 | Re: Article on new mainframe use | 73 | | John Levine |
28 Aug 24 | Re: Article on new mainframe use | 70 | | Lawrence D'Oliveiro |
29 Aug 24 | Re: Article on new mainframe use | 69 | | John Levine |
30 Aug 24 | Re: Article on new mainframe use | 68 | | Lawrence D'Oliveiro |
30 Aug 24 | Re: Article on new mainframe use | 67 | | Michael S |
30 Aug 24 | Re: Article on new mainframe use | 12 | | John Levine |
30 Aug 24 | Re: tiny COBOL, Article on new mainframe use | 11 | | John Levine |
31 Aug 24 | Re: tiny COBOL, Article on new mainframe use | 8 | | Stefan Monnier |
31 Aug 24 | Re: tiny COBOL, Article on new mainframe use | 5 | | Thomas Koenig |
2 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 4 | | Terje Mathisen |
2 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 2 | | Thomas Koenig |
2 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 1 | | Anssi Saari |
2 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 1 | | Anton Ertl |
31 Aug 24 | Re: tiny COBOL, Article on new mainframe use | 1 | | Anton Ertl |
31 Aug 24 | Re: tiny COBOL, Article on new mainframe use | 1 | | George Neuner |
2 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 2 | | Lawrence D'Oliveiro |
4 Sep 24 | Re: tiny COBOL, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
1 Sep 24 | Re: Article on new mainframe use | 6 | | Lawrence D'Oliveiro |
1 Sep 24 | Re: COBOL history, Article on new mainframe use | 3 | | John Levine |
1 Sep 24 | Re: COBOL history, Article on new mainframe use | 1 | | Lynn Wheeler |
2 Sep 24 | Re: COBOL history, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
1 Sep 24 | Re: Article on new mainframe use | 2 | | John Dallman |
2 Sep 24 | Re: Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
1 Sep 24 | Re: Article on new mainframe use | 48 | | Lawrence D'Oliveiro |
1 Sep 24 | Re: Article on new mainframe use | 47 | | MitchAlsup1 |
2 Sep 24 | Re: Article on new mainframe use | 46 | | Lawrence D'Oliveiro |
2 Sep 24 | Re: Address bits again, Article on new mainframe use | 45 | | John Levine |
2 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Thomas Koenig |
2 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Stephen Fuld |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 42 | | Lawrence D'Oliveiro |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 2 | | Terje Mathisen |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 39 | | John Levine |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 37 | | John Dallman |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | MitchAlsup1 |
5 Sep 24 | transparent huge pages (was: Address bits again) | 4 | | Anton Ertl |
5 Sep 24 | Re: transparent huge pages | 1 | | MitchAlsup1 |
5 Sep 24 | Re: transparent huge pages | 1 | | Chris M. Thomasson |
8 Sep 24 | Re: transparent huge pages (was: Address bits again) | 1 | | Lawrence D'Oliveiro |
5 Sep 24 | Re: Address bits again, Article on new mainframe use | 31 | | John Levine |
8 Sep 24 | Re: Address bits again, Article on new mainframe use | 30 | | Lawrence D'Oliveiro |
8 Sep 24 | Re: Address bits again, Article on new mainframe use | 29 | | MitchAlsup1 |
8 Sep 24 | Re: Address bits again, Article on new mainframe use | 4 | | MitchAlsup1 |
8 Sep 24 | Re: Address bits again, Article on new mainframe use | 3 | | Chris M. Thomasson |
9 Sep 24 | Re: Address bits again, Article on new mainframe use | 2 | | Lawrence D'Oliveiro |
9 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Chris M. Thomasson |
9 Sep 24 | Re: Address bits again, Article on new mainframe use | 24 | | Lawrence D'Oliveiro |
9 Sep 24 | Re: Address bits again, Article on new mainframe use | 23 | | MitchAlsup1 |
10 Sep 24 | Re: Address bits again, Article on new mainframe use | 22 | | Lawrence D'Oliveiro |
11 Sep 24 | Re: Address bits again, Article on new mainframe use | 2 | | John Levine |
11 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
11 Sep 24 | Re: Address bits again, Article on new mainframe use | 19 | | MitchAlsup1 |
12 Sep 24 | Re: Address bits again, Article on new mainframe use | 18 | | Lawrence D'Oliveiro |
12 Sep 24 | Re: Address bits again, Article on new mainframe use | 17 | | Lars Poulsen |
12 Sep 24 | Re: Address bits again, Article on new mainframe use | 13 | | Lawrence D'Oliveiro |
13 Sep 24 | Re: Address bits again, Article on new mainframe use | 3 | | George Neuner |
4 Sep 24 | Re: Address bits again, Article on new mainframe use | 1 | | Lawrence D'Oliveiro |
28 Aug 24 | Re: Article on new mainframe use | 2 | | Lawrence D'Oliveiro |
23 Aug 24 | Re: Article on new mainframe use | 1 | | George Neuner |
16 Aug 24 | Re: Article on new mainframe use | 4 | | Lynn Wheeler |
15 Aug 24 | Re: Article on new mainframe use | 1 | | Thomas Koenig |
15 Aug 24 | Re: Article on new mainframe use | 7 | | Lawrence D'Oliveiro |