Logs: liberachat/#haskell
| 2026-03-07 07:24:47 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-07 07:30:11 | × | rainbyte quits (~rainbyte@181.47.219.106) (Remote host closed the connection) |
| 2026-03-07 07:31:02 | × | philopsos1 quits (~caecilius@user/philopsos) (Quit: leaving) |
| 2026-03-07 07:31:26 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
| 2026-03-07 07:34:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 07:36:34 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 2026-03-07 07:38:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-07 07:41:01 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
| 2026-03-07 07:46:41 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 2026-03-07 07:49:27 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 07:53:52 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2026-03-07 07:54:03 | → | califax joins (~califax@user/califx) |
| 2026-03-07 07:56:20 | × | Vizious quits (~bes@user/Vizious) (Quit: WeeChat 4.6.3) |
| 2026-03-07 07:56:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-03-07 08:00:21 | → | tromp joins (~textual@2001:1c00:3487:1b00:e975:d7be:a717:768f) |
| 2026-03-07 08:01:02 | × | DetourNetworkUK quits (~DetourNet@user/DetourNetworkUK) (Read error: Connection reset by peer) |
| 2026-03-07 08:02:39 | → | DetourNetworkUK joins (~DetourNet@user/DetourNetworkUK) |
| 2026-03-07 08:07:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 08:12:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-07 08:12:45 | → | euphores joins (~SASL_euph@user/euphores) |
| 2026-03-07 08:15:06 | × | xff0x quits (~xff0x@2405:6580:b080:900:acbe:a784:57c1:5e52) (Ping timeout: 244 seconds) |
| 2026-03-07 08:18:45 | → | Vizious joins (~bes@user/Vizious) |
| 2026-03-07 08:19:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 08:22:34 | → | xff0x joins (~xff0x@2405:6580:b080:900:acbe:a784:57c1:5e52) |
| 2026-03-07 08:24:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-07 08:29:46 | × | madresch quits (~Thunderbi@user/madresch) (Quit: madresch) |
| 2026-03-07 08:30:06 | → | madresch joins (~Thunderbi@user/madresch) |
| 2026-03-07 08:37:58 | × | xff0x quits (~xff0x@2405:6580:b080:900:acbe:a784:57c1:5e52) (Ping timeout: 256 seconds) |
| 2026-03-07 08:38:46 | → | xff0x joins (~xff0x@2405:6580:b080:900:4ba2:34a0:8fe0:b7c2) |
| 2026-03-07 08:39:54 | × | arandombit quits (~arandombi@user/arandombit) (Ping timeout: 244 seconds) |
| 2026-03-07 08:51:32 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 08:52:31 | → | bgamari_ joins (~bgamari@64.223.168.27) |
| 2026-03-07 08:53:14 | × | bgamari quits (~bgamari@64.223.173.201) (Ping timeout: 245 seconds) |
| 2026-03-07 08:53:33 | × | tzh quits (~tzh@76.115.131.146) (Quit: zzz) |
| 2026-03-07 08:56:43 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-07 09:01:10 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 265 seconds) |
| 2026-03-07 09:04:15 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 2026-03-07 09:07:20 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 09:12:17 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-03-07 09:15:07 | × | Vizious quits (~bes@user/Vizious) (Quit: WeeChat 4.6.3) |
| 2026-03-07 09:18:47 | × | humasect quits (~humasect@192.249.132.90) (Quit: Leaving...) |
| 2026-03-07 09:20:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 09:23:39 | → | Vizious joins (~bes@user/Vizious) |
| 2026-03-07 09:24:50 | × | Goodbye_Vincent1 quits (cyvahl@freakshells.net) (Quit: ) |
| 2026-03-07 09:25:51 | → | Goodbye_Vincent1 joins (cyvahl@freakshells.net) |
| 2026-03-07 09:27:16 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-03-07 09:27:20 | → | czan joins (~czan@user/mange) |
| 2026-03-07 09:35:12 | × | aka_dude quits (~aka_dude@192.71.166.120) (Quit: Gateway shutdown) |
| 2026-03-07 09:36:08 | → | aka_dude joins (~aka_dude@2a03:f80:30:f490::1) |
| 2026-03-07 09:38:18 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 09:41:35 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-07 09:43:14 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2026-03-07 09:54:06 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 09:59:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-07 10:00:00 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2026-03-07 10:04:23 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-07 10:07:29 | × | Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.2.6 Quasar http://www.kvirc.net/) |
| 2026-03-07 10:10:00 | → | merijn joins (~merijn@62.45.136.136) |
| 2026-03-07 10:14:27 | × | merijn quits (~merijn@62.45.136.136) (Ping timeout: 244 seconds) |
| 2026-03-07 10:14:56 | × | YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:6149:6cda:888:c7a0) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in) |
| 2026-03-07 10:15:15 | → | YoungFrog joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be) |
| 2026-03-07 10:19:03 | × | arandombit quits (~arandombi@user/arandombit) (Remote host closed the connection) |
| 2026-03-07 10:21:18 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 10:22:44 | × | img quits (~img@user/img) (Quit: ZNC 1.10.1 - https://znc.in) |
| 2026-03-07 10:23:59 | → | img joins (~img@user/img) |
| 2026-03-07 10:25:05 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 258 seconds) |
| 2026-03-07 10:26:25 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 2026-03-07 10:26:34 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 2026-03-07 10:29:48 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 264 seconds) |
| 2026-03-07 10:36:19 | → | Guest89 joins (~Guest89@185.45.21.144) |
| 2026-03-07 10:37:05 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-07 10:39:06 | × | Beowulf quits (florian@sleipnir.bandrate.org) (Quit: = "") |
| 2026-03-07 10:39:40 | <Guest89> | hello; I'm trying to profile an application that is rather performance sensitive and I'm hoping to reduce allocations as much as possible (this is for the purposes of a master's thesis I'm working on), but I'm having a little trouble isolating the hotspots in my code and understanding whether or not my code itself is overallocating as it is |
| 2026-03-07 10:39:41 | <Guest89> | written. would anyone be willing to help me figure things out? |
| 2026-03-07 10:40:11 | <Guest89> | garbage collection takes 3 times as long as the code itself for example, which I think seems very excessive. I've been trying to play around with things like ghc-compact but it didn't seem to help things any |
| 2026-03-07 10:41:21 | <haskellbridge> | <sm> hi Guest89 . It's not the easiest process, but it will be useful to generate a simple time and space profile - the profiling chapter in the GHC Users's Guide should tell how |
| 2026-03-07 10:41:50 | <haskellbridge> | <sm> you must make a profiling build of your app, then run it with special flags |
| 2026-03-07 10:42:04 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
| 2026-03-07 10:44:12 | <haskellbridge> | <sm> it will be hard to understand completely, but full of useful information. You can also process it with https://hackage.haskell.org/package/profiterole which makes it more readable. |
| 2026-03-07 10:45:29 | <haskellbridge> | <sm> and you're right, it's overallocating (garbage collection should be a small percentage of your run time) |
| 2026-03-07 10:45:32 | <Guest89> | I'll be honest, I haven't figured out how to interact with packages like that yet; I've used stuff like eventlog2html but compiled as a separate executable |
| 2026-03-07 10:45:59 | <Guest89> | I've mostly relied on the metrics provided by different RTS options so far |
| 2026-03-07 10:46:16 | <Guest89> | it's verbose but I can navigate it at least? |
| 2026-03-07 10:46:33 | <haskellbridge> | <sm> yes, +RTS -s is useful |
| 2026-03-07 10:47:46 | <haskellbridge> | <loonycyborg> https://github.com/ezyang/compact <- this might help with excessive gc times |
| 2026-03-07 10:47:48 | <Guest89> | I have some data that suggests that the data itself isn't fragmented but the program allocates about twice as much as it uses, which also seems excessive |
| 2026-03-07 10:48:10 | <Guest89> | I've already been trying to use GHC.Compact but it doesn't seem to have affected runtimes at all |
| 2026-03-07 10:48:33 | <Guest89> | I assume there is some structure in my code that exacerbates the problem but I can't really see where |
| 2026-03-07 10:49:28 | <Guest89> | it's supposed to be an implementation of I/O efficient BDD (binary decision diagram) algorithms which necessarily generates a lot of data so I need some way to minimize overhead where it's reasonable |
| 2026-03-07 10:49:57 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 2026-03-07 10:50:08 | <haskellbridge> | <sm> it may be normal that the program uses 2 or even 3 times what you think, depending how you measure it, because of how GC works (making copies) |
| 2026-03-07 10:50:38 | → | arandombit joins (~arandombi@user/arandombit) |
| 2026-03-07 10:50:51 | <haskellbridge> | <sm> the time and space profile will show you the top users of time and space, and will show you any crazy large call counts indicating things called too often |
| 2026-03-07 10:50:56 | <Guest89> | I understand, but the issue is that my implementation uses something like 100 times as much memory as a reference implementation in C++ |
| 2026-03-07 10:51:26 | <Guest89> | obviously you can't get the performance *that* close, at least not in terms of memory, but as things are it's both an absurd difference and not feasible |
| 2026-03-07 10:51:37 | <haskellbridge> | <loonycyborg> Maybe it's thunk explosion somewhere, like from foldl |
| 2026-03-07 10:51:53 | <haskellbridge> | <sm> it requires investigation, there's no way round it |
| 2026-03-07 10:52:17 | <Guest89> | I've tried both strict and non-strict versions of foldl, and I didn't seem to see any issues |
| 2026-03-07 10:52:40 | <Guest89> | most of the actual allocation happens within the core algorithms, but I've also tried varying levels of strictness there |
| 2026-03-07 10:52:49 | <haskellbridge> | <loonycyborg> ye it's just an example |
All times are in UTC.