|
01:56
colomon joined
03:04
colomon joined
05:35
Hotkeys joined
|
|||
| Hotkeys | hello | 05:35 | |
| as of github.com/MoarVM/MoarVM/commit/ba...f1ef94cd25 moar won't build on windows (for me on two machines) because it cannot find msinttypes/inttypes.h | 05:36 | ||
| It appears that $config{'toolchain'} isn't initialized | 05:42 | ||
| "Configuring native build environment ................... Use of uninitialized value $config{"toolchain"} in string eq at Configure.pl line 266." | |||
| I'm not really sure what a good solution here would be, so I'm just reporting it | |||
| oops sorry | 05:46 | ||
| looks like this was already fixed and rakudo just hasn't bumped the moar version yet | 05:47 | ||
| my apologies | |||
|
07:28
domidumont joined
07:33
domidumont joined
10:13
leont joined
12:58
colomon joined
13:07
FROGGS joined
13:52
FROGGS_ joined
15:24
zakharyas joined
|
|||
| timotimo | jnthn: i'm interested in seeing if an optimization to store single-grapheme strings inside the string struct itself rather than mallocing a single-grapheme buffer; how do i best measure this? potentially by making my old gdb thingie that goes through the whole heap work again against latest moar? | 16:33 | |
| jnthn | Maybe. Though .comb of a long string may also show it up in its memory use :) | 16:37 | |
| timotimo | right | ||
| jnthn | How common are single-char strings? | ||
| We need to make sure the opt is worth the complexity. | 16:38 | ||
| timotimo | i'd start by looking at what "the empty program" ends up having | ||
| jnthn | *nod* | ||
| timotimo | well, that's exactly what i want to find out :) | ||
| alternatively, is there a single point where MVMString gets created? perhaps. | 16:39 | ||
| mostly in the encode and decode functions, right? | |||
| and perhaps substr and flatten ropes in the ops | |||
| jnthn | Well, a *lot* of places use the codepoint and grapheme iterators. | 16:40 | |
| All the encode/decode functions certainly do that. | |||
| timotimo | oh, wait, MVMString is also a REPR by itself | ||
| jnthn | aye | ||
| timotimo | but its initialize method wouldn't be late enough to catch the size of the created string | 16:41 | |
| i ought to ponder this a bit more | |||
| BBIAB | |||
| taking hashes of our strings is also driven by the codepoint iterator now? | 16:57 | ||
| if so, i must have missed the commits that made it so during the bigger nfg refactor or where-ever that happened | 16:58 | ||
| the more interesting optimization may be - if the hash stuff is already taken care of - to actually use unsigned-8bit-storage for known-to-be-ascii strings | |||
| jnthn | No, hashing them always turns thme into 32-bit grapheme buffers at the moment. | 16:59 | |
| That'll want to change | 17:00 | ||
| timotimo | ah | ||
| we put basically every string into a hash while compiling to build the string heap, so at least in that place it won't help if that optimization lands | 17:01 | ||
| jnthn | aye | ||
| I think it may be a reasonable optimization, though if it causes a lot of code churn to do it now I'll be a tad hesitant | |||
| timotimo | that's fair | 17:02 | |
| jnthn | Though if the remedy to "causes a lot of code churn" is "OK, here's some patches that first refactor things so such changes are easy", I'll be less hesitant :) | ||
| timotimo | this neat little article here says malloc(1) gives you 32 bytes of used-up memory | 17:04 | |
| 8 byte for tracking data and then it's padded up to the minimum malloc will allocate, which seems to be 32 | |||
| huh, i can probably find out how often a one-character-string gets allocated with a little perf script | 17:09 | ||
| find all calls to malloc that have the size set to 1 * 32bit, kick out anything that doesn't have a frame from string/*.c in it, and presto! | |||
| Caution: When you run your program in the Visual Studio or with any debugger attached, by default the malloc behaviour is changed a lot, Low Fragmentation Heap is not used and a memory overhead may be not representative of real usage - huh! TIL! | 17:16 | ||
|
18:34
lizmat joined
19:17
virtualsue joined
19:21
domidumont joined
19:43
ggoebel14 joined
20:00
colomon joined
20:04
domidumont joined
22:32
kjs_ joined
22:51
colomon joined
|
|||