github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:42
evalable6 left,
notable6 left,
tellable6 left,
bisectable6 left,
unicodable6 left,
nativecallable6 left,
bloatable6 left,
squashable6 left,
committable6 left,
shareable6 left,
releasable6 left,
greppable6 left,
statisfiable6 left,
sourceable6 left,
benchable6 left,
coverable6 left,
quotable6 left,
linkable6 left,
reportable6 left,
evalable6 joined,
nativecallable6 joined,
committable6 joined,
releasable6 joined,
reportable6 joined
00:43
unicodable6 joined,
tellable6 joined,
statisfiable6 joined,
quotable6 joined,
squashable6 joined
00:44
bisectable6 joined,
bloatable6 joined,
linkable6 joined,
shareable6 joined,
greppable6 joined
00:45
coverable6 joined,
notable6 joined,
benchable6 joined,
sourceable6 joined
02:15
AlexDani` left
02:16
AlexDani` joined
03:18
colomon left
03:19
colomon_ joined
03:23
colomon_ left
03:31
MasterDuke left
03:37
colomon_ joined
04:37
Kaiepi left
04:47
Kaiepi joined
06:44
MasterDuke joined
08:12
shareable6 left,
notable6 left,
evalable6 left,
releasable6 left,
nativecallable6 left,
benchable6 left,
tellable6 left,
statisfiable6 left,
greppable6 left,
bisectable6 left,
unicodable6 left,
quotable6 left,
committable6 left,
reportable6 left,
squashable6 left,
linkable6 left,
sourceable6 left,
bloatable6 left,
coverable6 left
08:13
releasable6 joined,
bisectable6 joined,
nativecallable6 joined,
notable6 joined,
unicodable6 joined,
statisfiable6 joined,
linkable6 joined
08:14
coverable6 joined,
quotable6 joined,
sourceable6 joined,
tellable6 joined,
benchable6 joined,
evalable6 joined,
squashable6 joined
08:15
shareable6 joined,
bloatable6 joined,
greppable6 joined,
reportable6 joined,
committable6 joined
|
|||
MasterDuke | timotimo: what about github.com/MoarVM/MoarVM/commit/4c...7e99e87a13 ? | 08:42 | |
09:15
sena_kun joined
10:13
Kaiepi left
10:14
Kaiepi joined
|
|||
timotimo | that doesn't allocate an object, so the profiler wouldn't notice anything | 10:26 | |
MasterDuke | is there an easy way to have a spectest profile every test it runs? | 10:37 | |
10:39
Altai-man_ joined
10:41
sena_kun left
|
|||
MasterDuke | i'm currently up to 29 ops added and i think there are still more needed. i'd like a way to stresstest profiling (and hopefully get a before/after of allocations) without having to craft some sort of test case | 10:42 | |
10:44
Kaiepi left,
Kaiepi joined
|
|||
nine | If I start profiling real world applications regularily I may want to upgrade my computer after all. A Ryzen 7 1800X with 32 GiB RAM just doesn't cut it anymore | 11:11 | |
MasterDuke | heh, i considered upgrading to 64gb instead of just 32gb, mostly because of profiling | 11:18 | |
but prices were still a little high, so i'll just get another 32gb later | |||
11:22
AlexDani` is now known as AlexDaniel,
AlexDaniel left,
AlexDaniel joined
|
|||
nine | Of course I could also just have a look at what the profiler does with that much memory | 11:29 | |
One thing I've already noticed: the program is writing profiler output to profile.sql but MVM_profile_instrumented_mark_data is still busy. Shouldn't we turn off profiling when the profile is complete? | 11:30 | ||
MasterDuke | but then how do you profile the profiler? or profile profiling the profiler? it's profilers all the way down... | 11:36 | |
11:45
Kaiepi left
|
|||
nine | How would it use the additional data anyway? mvmendprofile returns the profiler data. Nothing collected afterwards will make it into the dump | 11:46 | |
Oh, MVM_profile_instrumented_mark_data may not be as much about collecting as about GC marking the profiler's own data | 11:48 | ||
MasterDuke | yeah, i was just joking, seems like an optimization opportunity | 11:49 | |
11:51
Kaiepi joined
|
|||
nine | The profile writing code already seems to be smart about writing to the file in batches on the fly | 11:53 | |
11:53
Kaiepi left
11:54
Kaiepi joined
11:59
Kaiepi left
12:00
Kaiepi joined
12:27
Kaeipi joined,
Kaiepi left
|
|||
timotimo | it's possible that mvmendprofile should clear out some stuff after it's done creating the datastructures | 12:37 | |
12:40
sena_kun joined
12:41
Altai-man_ left
|
|||
nine | I'd guess that what's taking forever in my case is simply a plain normal GC run. With 40 gigs of memory used, presumably by a huge amount of small objects, all of which made it into gen2, that's bound to take forever | 12:41 | |
I think both, the memory usage and the GC time would be fixed by writing data to disk during the runtime of the program, e.g. as part of GC runs | 12:42 | ||
timotimo | the profiler already sets the allocate-in-gen2 flag when it creates all the datastructures, since they are going to be many times the size of the nursery in total and no GC runs would find any garbage during that time | 12:44 | |
you can see what happens if you don't mark anything (or perhaps null out references) when profiling isn't active | |||
12:55
ChanServ left
13:03
ChanServ joined,
tepper.freenode.net sets mode: +o ChanServ
13:07
Kaeipi left
13:08
ChanServ left
13:10
ChanServ joined,
tepper.freenode.net sets mode: +o ChanServ
13:11
Kaiepi joined
13:14
Kaiepi left,
Kaiepi joined
13:38
Kaiepi left
13:44
Kaiepi joined
14:06
Kaeipi joined
14:07
Kaiepi left
|
|||
dogbert17 | nine: have you looked at the Ryzen 3900x ? | 14:14 | |
nine | dogbert17: certainly :) | 14:20 | |
dogbert17 | It could be a drop in replacement | 14:22 | |
nine | Well I figure when I upgrade, I'll take the opportunity to get a new mother board as well. I've got a GA-AX370-Gaming 5 and it's....got issues | 14:24 | |
Sometimes the computer just won't turn on when I press the button and instead turns off even more completely. Only way to revive it then is to cut it off power completely, remove the BIOS battery and wait for a couple of minutes | 14:25 | ||
dogbert17 | Oops, that doesn't sound very encouraging | 14:26 | |
nine | Of course then I need to set date and time again and load my BIOS settings. And I've got to load them twice because it just won't boot with overclocked memory for the first time after adjusting the setting (but every time afterwards) | ||
dogbert17 | That sucks :( What kind of motherboard are you looking at, X570? | 14:29 | |
dogbert17 is still using a ASUS RoG Strix B350 Gaming but has swapped the CPU for a 3700X some months ago inspired by MasterDuke | 14:32 | ||
MasterDuke is still very happy with his 3700X | 14:34 | ||
dogbert17 | MasterDuke: it must have been a massive upgrade compared to what you had before | ||
MasterDuke | definitely. twice the cores, and each core is almost twice as fast | 14:37 | |
14:39
Altai-man_ joined
14:42
sena_kun left
|
|||
nine | dogbert17: haven't done much research yet. Also I wonder if I should just wait for the next generation. Zen3 shouldn't be far off now | 14:46 | |
dogbert17 | nine: I've heard September or thereabouts | 14:52 | |
MasterDuke | i just heard the same thing | 14:56 | |
dogbert17 | .seen samcv | 15:15 | |
tellable6 | dogbert17, I saw samcv 2020-04-01T18:51:35Z in #raku: <samcv> vrurg, well. that is out of scope. we can't control what anybody else does with the data | ||
dogbert17 | this snippet of code from src/strings/unicode_db.c looks a bit strange or am I missing something here: | 15:18 | |
75055 if (block) { | |||
75056 return block ? Block_enums[num+1] : Block_enums[0]; | |||
75057 } | |||
MasterDuke | timotimo: the sp_(add|sub|etc)_I ops should all be added also? | 15:43 | |
heh, it might be easier to just assume that anything that returns a str or obj should be included and blacklist the few ops that shouldn't | 15:45 | ||
15:51
patrickb joined
|
|||
nine | The other troublesome part of the profiler is that even sqlite3 runs out of memory trying to import the dump :/ | 16:33 | |
What happened to "48 GB of RAM ought to be enough for anybody?" | |||
16:40
sena_kun joined
16:41
Altai-man_ left
|
|||
nine | I guess sqlite can be helped greatly by limiting the number of data sets per insert statement. We already batch writes to the file handle. May as well do one statement per batch | 16:46 | |
The INSERT INTO calls line is ~370 MB in this profile. That's....a bit much to digest in one piece I guess :) | 16:58 | ||
There's another one with 450 megs | |||
17:14
zakharyas joined
|
|||
dogbert17 | doesn't this line look a bit suspicious: github.com/MoarVM/MoarVM/blob/mast...eops.c#L63 | 17:37 | |
I mean == has higher precedence than & | 17:38 | ||
nine | dogbert17: indeed! | 17:50 | |
dogbert17 | nine: I guess I could PR it but I'm unable to test the change I'm afraid | 17:55 | |
nine | dogbert17: looks like a clear enough case so 2 pairs of eyes should be enough, even without testing | 18:00 | |
Also we have Appveyor | |||
18:09
AlexDaniel left
|
|||
dogbert17 | ok, will fix | 18:14 | |
Geth_ | MoarVM: dogbert17++ created pull request #1269: Add missing parentheses |
18:21 | |
18:39
Altai-man_ joined
18:42
sena_kun left
|
|||
MasterDuke | hm. what happened to the cancelnotify op? | 18:43 | |
[Coke] | ?? | 18:59 | |
Geth_ | MoarVM: 6975a6595b | (Jan-Olof Hendig)++ | src/io/fileops.c Add missing parentheses The original test used a boolean result in a bitwise operation which is clearly incorrect. |
19:03 | |
MoarVM: 32dfe7507d | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/io/fileops.c Merge pull request #1269 from dogbert17/fix-incorrect-test Add missing parentheses |
|||
samcv | hey dogbert17 | 19:56 | |
i'd have to take a look at it, but is there some reason you suspect it is wrong, or just curious. | 19:57 | ||
I totally agree it looks weird. But I'm guessing it's some space saving measure... | 20:02 | ||
dogbert17 | samcv: I'm not saying it's wrong I was reacting to the weird part _) | 20:04 | |
:) | |||
20:10
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
20:34
AlexDaniel left
20:40
sena_kun joined
20:41
Altai-man_ left
21:10
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
21:18
Kaeipi left
21:19
Kaeipi joined
21:22
AlexDaniel left
21:24
AlexDaniel joined
21:28
AlexDaniel left
21:40
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
21:43
zakharyas left
22:39
Altai-man_ joined
22:42
sena_kun left
22:48
patrickb left
|