Newest at the top
2025-01-04 00:20:31 +0100 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2025-01-04 00:18:57 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2025-01-04 00:18:32 +0100 | xal | (~xal@mx1.xal.systems) xal |
2025-01-04 00:17:57 +0100 | xal | (~xal@mx1.xal.systems) (Quit: bye) |
2025-01-04 00:15:52 +0100 | foul_owl | (~kerry@193.42.0.124) (Ping timeout: 252 seconds) |
2025-01-04 00:14:46 +0100 | michalz | (~michalz@185.246.207.201) (Remote host closed the connection) |
2025-01-04 00:13:59 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-04 00:03:06 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2025-01-04 00:02:21 +0100 | <haskellbridge> | <magic_rb> The exists function does nothing else, it takes a Int, accesses the vectors from behind a STRef and then returns a Bool |
2025-01-04 00:01:41 +0100 | <monochrom> | or rather, s/there should not be/that should not be the cause of/ |
2025-01-04 00:01:40 +0100 | <haskellbridge> | <magic_rb> Which adds up |
2025-01-04 00:01:36 +0100 | <haskellbridge> | <magic_rb> Yes but im pulling out the Int from it, doing some compressions and then returning a Bool to the calling code saying "yep exists" and doing that hundreds of times per frame |
2025-01-04 00:00:21 +0100 | <monochrom> | If you have an unboxed vector and it's mutable and you are in ST/IO modifying it in-place, there should not be that much allocation, at least not allocation a whole new copy of the whole vector. |
2025-01-03 23:59:11 +0100 | <haskellbridge> | <magic_rb> Itll be syntactic hell but ive never done that so i wanna try |
2025-01-03 23:59:00 +0100 | <haskellbridge> | <magic_rb> Ill try to avoid boxing in exists next, working with unboxed types |
2025-01-03 23:58:44 +0100 | <haskellbridge> | <magic_rb> Right i dont need that, or rather dont want that |
2025-01-03 23:58:38 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-03 23:58:12 +0100 | <monochrom> | boxed is the only one that supports laziness. |
2025-01-03 23:57:51 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2025-01-03 23:57:47 +0100 | <monochrom> | storable and unboxed are pretty much on par. storable supports user-defined types more easily. |
2025-01-03 23:57:12 +0100 | <haskellbridge> | <magic_rb> for rendering code or something |
2025-01-03 23:57:05 +0100 | <haskellbridge> | <magic_rb> maybe doing storable and reading the pointers? i was hoping to have the sparseset accessible from both Haskell and native code |
2025-01-03 23:56:44 +0100 | <haskellbridge> | <magic_rb> but exists is a really frequently used function so it needs to be very snappy |
2025-01-03 23:56:28 +0100 | <haskellbridge> | <magic_rb> yeah i know |
2025-01-03 23:55:51 +0100 | <monochrom> | boxed takes more memory than unboxed, namely, one more pointer. |
2025-01-03 23:54:17 +0100 | <haskellbridge> | <magic_rb> maybe if i can work with the unboxed values directly? though thats extremely clumsy |
2025-01-03 23:52:04 +0100 | <haskellbridge> | <magic_rb> might be better to make the metadata vectors boxed? hm |
2025-01-03 23:51:40 +0100 | <haskellbridge> | <magic_rb> damn |
2025-01-03 23:51:38 +0100 | <haskellbridge> | <magic_rb> it has to box |
2025-01-03 23:51:36 +0100 | <haskellbridge> | <magic_rb> all the vectors are unbox, right thats why the allocs |
2025-01-03 23:51:31 +0100 | vanishingideal | (~vanishing@user/vanishingideal) (Remote host closed the connection) |
2025-01-03 23:51:03 +0100 | <haskellbridge> | <magic_rb> still |
2025-01-03 23:51:01 +0100 | <haskellbridge> | <magic_rb> and somehow overhead in exists |
2025-01-03 23:50:47 +0100 | <haskellbridge> | <magic_rb> which suggests that there is overhead from PrimMonad |
2025-01-03 23:50:37 +0100 | <haskellbridge> | <magic_rb> i removed some of the inline pragmas, around exists and got https://paste.tomsmeding.com/lA8DAs9V |
2025-01-03 23:47:20 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2025-01-03 23:47:05 +0100 | <haskellbridge> | <magic_rb> maybe i ought to move into games, though this is a general "why is my haskell code horribly slow" question :) |
2025-01-03 23:46:21 +0100 | <lambdabot> | Done. |
2025-01-03 23:46:07 +0100 | <sm> | @where+ games https://joyful.com/Haskell+Games |
2025-01-03 23:44:03 +0100 | <haskellbridge> | <magic_rb> right and my physics system writes even positions that are equal so there is constant churn |
2025-01-03 23:41:36 +0100 | <haskellbridge> | <magic_rb> they do the positions move |
2025-01-03 23:41:30 +0100 | <haskellbridge> | <magic_rb> those thunks dont change, oh wait |
2025-01-03 23:40:46 +0100 | <geekosaur> | which suggests it's forcing a thunk that's in the STRef |
2025-01-03 23:40:33 +0100 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2025-01-03 23:40:12 +0100 | <haskellbridge> | <magic_rb> c_wraith: looking at my code again, most of the apparent allcs are in "exists" which doesnt even touche the STRef at all. it only reads it |
2025-01-03 23:36:10 +0100 | gorignak | (~gorignak@user/gorignak) gorignak |
2025-01-03 23:34:33 +0100 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2025-01-03 23:32:24 +0100 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2025-01-03 23:32:14 +0100 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2025-01-03 23:23:19 +0100 | SlackCoder | (~SlackCode@64-94-63-8.ip.weststar.net.ky) SlackCoder |