00:00:01  * ircretaryquit (Remote host closed the connection)
00:00:06  <isaacs>wasn't there some talk of threaded gc in v8?
00:00:07  * ircretaryjoined
00:00:51  <isaacs>meh. probably not a good idea to jump off a stable v8 right now anyway.
00:00:53  <bnoordhuis>isaacs: yes, that landed in v8's master this week
00:01:05  <bnoordhuis>and no, i wouldn't recommend switching to that right away :)
00:01:12  <bnoordhuis>they already landed at least one bug fix
00:01:45  <isaacs>that's rad.
00:01:51  <MI6>joyent/node: Ben Noordhuis master * cd42f56 : buffer: optimize Buffer.prototype.write(s, 'hex') Move the implementatio - http://git.io/ovgLWg
00:02:04  <isaacs>so, i guess this weekend i'll read up on idle notifications and try to learn wth that was even supposed to be doing in the first place.
00:02:18  <isaacs>because GC is demonstrably eating our lunch right now.
00:02:26  <bnoordhuis>isaacs: it was supposed to do this -> https://github.com/bnoordhuis/node-idle-gc
00:03:05  <bnoordhuis>i.e. proactively invoke the GC but only if we're _really_ idle
00:03:33  <isaacs>hm. actually, i'm not sure if that's going to work out..
00:03:40  <hij1nx>isaacs: bnoordhuis: ok, thanks for the feedback :)
00:03:45  <isaacs>i mean, what we're seeing is increased latency when we are NOT idle.
00:03:49  <isaacs>because GC kicks in
00:04:34  <isaacs>we should have a mode that just never runs gc at all.
00:04:39  <roxlu>bnoordhuis: uv doesn't have a cross platform sleep(), does it?
00:05:06  <bnoordhuis>roxlu: no, only in test/ :)
00:05:09  <isaacs>FUCKIT I GOTS ME PLENNY A MEMORY, LETS RUN A BENCHMARK!
00:05:10  <LOUDBOT>OVERACTIVE BLADDER? QUICK EAT SOME CELERY!
00:05:38  <trevnorris>bnoordhuis: in StreamWrap::WriteBuffer, every call does a malloc?
00:05:51  * isaacsrelocating &
00:06:27  * mikealquit (Quit: Leaving.)
00:06:57  <bnoordhuis>trevnorris: well, placement new but yes
00:07:34  <bnoordhuis>or rather, it does some cleverness where it allocates heap memory for a c++ object plus extra buffer space
00:08:06  <trevnorris>bnoordhuis: forgive my inexperience, but thought we pooled buffers because the act of malloc'ing is expensive.
00:08:14  <trevnorris>oh, so it's not like external memory/
00:08:16  <trevnorris>?
00:08:46  <bnoordhuis>trevnorris: well, it is, it's heap memory
00:09:11  <trevnorris>so does that also need to be gc'd afterwards?
00:09:26  <bnoordhuis>not gc'd, it's freed in the AfterWrite callback
00:09:55  <trevnorris>ah, duh. yeah. since it's external memory v8 doesn't touch it.
00:10:08  <trevnorris>erm. something like that.
00:10:12  <bnoordhuis>yep
00:10:19  <bnoordhuis>and yes, malloc is expensive
00:10:28  <pfox__>bnoordhuis: hey.. you going to sleep soon?
00:10:33  <pfox__>i might have a mingw32 patch
00:10:49  <bnoordhuis>but a slabbuffer would be insecure because js code could manipulate c++ objects
00:10:59  <bnoordhuis>that'd make for some awesome exploits though
00:11:08  <bnoordhuis>pfox__: i'll be around for another 10 minutes or so
00:11:18  <pfox__>gotcha.
00:11:33  <pfox__>well.. do you think you can land this, then? https://gist.github.com/26a8955c1b864cf69754
00:11:37  <trevnorris>bnoordhuis: awesome. i'll remember that. ;-)
00:11:46  <pfox__>just a one-liner in config-mingw.mk
00:12:19  <bnoordhuis>sure. you want attribution?
00:12:43  <pfox__>it was graydon's doing, actually :)
00:12:49  <pfox__>i don't think it'll matter
00:13:05  <bnoordhuis>just say no and i won't have to ask you to sign the cla
00:13:07  <pfox__>no
00:13:13  <bnoordhuis>okay, cool :)
00:17:08  <MI6>joyent/libuv: Ben Noordhuis master * b271b06 : build: fix up WIN_SRCS - http://git.io/ipMdPA
00:21:57  <pfox__>mucho gracias, bnoordhuis
00:23:58  <TooTallNate>bnoordhuis: isaacs: apparently the precompiled linux binary doesn't work on opensuse
00:24:01  <TooTallNate>we just get
00:24:02  <TooTallNate>"FATAL ERROR: v8::Context::New() V8 is no longer usable"
00:24:26  <bnoordhuis>any ulimits in effect?
00:24:52  <bnoordhuis>that error usually means v8 can't mmap memory
00:25:00  <bnoordhuis>*enough memory
00:25:27  * TooTallNatechecking
00:25:43  <bnoordhuis>does a binary compiled from source work?
00:27:15  <trevnorris>bnoordhuis: ooh. meant to thank you for massif. so many options... =)_
00:27:39  <bnoordhuis>it's versatile, isn't it? :)
00:28:18  <trevnorris>yeah. and honestly I sorta like the ms_paint output
00:28:27  <trevnorris>ms_print*
00:30:33  <trevnorris>bnoordhuis: --page-as-heap really showed the differences between how v0.8 and master are handling tcp streams.
00:36:40  * mikealjoined
00:46:38  * einarosquit (Quit: leaving)
00:51:45  <TooTallNate>bnoordhuis: a binary compiled from source gives the same error
00:52:17  * qmx|awaychanged nick to qmx
00:52:59  <TooTallNate>bnoordhuis: ok `ulimit -v unlimited` fixed it :)
00:53:20  * bnoordhuisquit (Ping timeout: 255 seconds)
00:54:14  * EhevuTovquit (Quit: This computer has gone to sleep)
01:02:40  <isaacs>lol
01:02:41  <isaacs>-// A rather convoluted algorithm has been devised to determine when Node is
01:02:41  <isaacs>-// idle. You'll have to figure it out for yourself.
01:03:18  <trevnorris>wtf? where is that?
01:03:35  <trevnorris>nm. found it
01:04:16  <trevnorris>oh whoops. that was a message in v8.
01:04:32  <isaacs>trevnorris: well, it used to bein node.cc
01:04:35  <isaacs>trevnorris: but it's removed
01:05:01  <trevnorris>that's awesome. definitely what a coder wants to read.
01:16:18  <trevnorris>isaacs: how's this async sequence testing: http://git.io/IFWACg
01:16:26  <trevnorris>this sucker can now handle anything. =)
01:16:48  <trevnorris>i'll get the existing PR updated this weekend. should be ready by monday (hopefully)
01:17:01  <isaacs>sweet :)
01:17:54  * lohkeypart
01:18:28  * trevnorrisquit (Quit: Leaving)
01:37:28  <isaacs>zero deopts: $ ./node --trace_inlining --code_comments --trace_deopt --trace_opt benchmark/net/tcp_raw_c2s.js --iter 10
01:38:19  * loladirojoined
01:55:10  <isaacs>hm. moving makecallback back to C++ has a 2% improvement on the tcp_raw stuff, and way less bailouts/deopts, but virtually zero effect on http_simple.
01:55:13  <isaacs>that's too bad.
02:23:08  <isaacs>hm. actually, wiht http_simple LENGTH=1024, it's about a 5% increase
02:25:31  <isaacs>oh, no, i was reading it wrong.
02:25:40  <isaacs>it's faster with makecallback in js if the length increases.
02:25:44  <isaacs>ok. fine. dead end.
02:28:27  * dapquit (Quit: Leaving.)
02:42:04  <tjfontaine>:/
02:47:08  * TooTallNatequit (Quit: Computer has gone to sleep.)
03:00:12  * lohkeyjoined
03:28:02  * hzquit
03:45:01  * c4milojoined
03:47:07  * googolquit (Read error: Connection reset by peer)
03:50:12  * TooTallNatejoined
04:03:53  * jmar777joined
04:07:29  * brsonquit (Quit: leaving)
04:29:08  <tjfontaine>TooTallNate: sigh, this ffi issue is because this guy used my script and didn't follow my advice
04:29:28  <TooTallNate>haha
04:29:32  <TooTallNate>tjfontaine: what was you advice?
04:30:09  <tjfontaine>TooTallNate: well, he's ultimately trying to wrap too much
04:30:23  <tjfontaine>the script sees and wraps
04:30:23  <tjfontaine>var size_t = exports.size_t = Struct({
04:30:23  <tjfontaine> __darwin_size_t: ref.types.ulong,
04:30:24  <tjfontaine>});
04:30:31  <tjfontaine>which is more than likely the issue
04:30:40  * jmar777quit (Remote host closed the connection)
04:31:11  <tjfontaine>but then you see methods like scanf in the methods
04:31:15  * jmar777joined
04:33:54  * jmar777_joined
04:34:17  * jmar777quit (Read error: Connection reset by peer)
04:35:36  <TooTallNate>tjfontaine: what's sbml?
04:36:00  <tjfontaine>TooTallNate: "systems biology markup language"
04:36:03  <tjfontaine>http://sbml.org/Software/libSBML
04:36:27  <TooTallNate>woah
04:37:51  <TooTallNate>well i'm convinced it's in his code
04:38:24  <tjfontaine>well it's certainly in how much it wrapped, is there an easy DEBUG="" to see what method it's failing on?
04:39:26  * jmar777_quit (Remote host closed the connection)
04:40:01  * jmar777joined
04:44:30  * jmar777quit (Ping timeout: 264 seconds)
04:46:14  <tjfontaine>TooTallNate: the real problem with this library he's trying to wrap is that it's C bindings to a C++ interface, and they haven't followed sane namespace naming conventions, or at least have the sense to stick it all in a single header file, so determining what to wrap programmatically is a bit of a long shot :)
04:46:45  <TooTallNate>haha
04:46:52  <TooTallNate>is that using a generator of some sort?
04:47:01  <TooTallNate>did you write one?
04:47:19  <tjfontaine>ya, the file he has is using my libclang based generator
04:47:32  <TooTallNate>nice, i remember you saying you were making that
04:47:54  <TooTallNate>how come you wrap typedefs in structs like that?
04:48:04  <tjfontaine>ya, with other things going on I haven't had time to finish everything I wanted, like ref-strict or the c++ mangling
04:48:30  <tjfontaine>well, it tries really hard to resolve types for fields, and types for structs
04:48:41  <tjfontaine>sometimes in weird define situations you get interesting results
04:48:55  <TooTallNate>interesting
04:48:56  <tjfontaine>that size_t wrapper must exist somewhere
04:49:05  <tjfontaine>because I'm just taking the info that libclang sees
04:50:00  <tjfontaine>what's curious about his situation is that it's failing in a different spot than mine
04:50:26  <tjfontaine>on darwin it fails with a much better slap you on the wrist for being greedy error: Error: Dynamic Symbol Retrieval Error: dlsym(0x100e00130, __inline_memcpy_chk): symbol not found
04:50:49  * c4miloquit (Remote host closed the connection)
04:59:08  <TooTallNate>tjfontaine: wow, nice slim version
04:59:52  <tjfontaine>TooTallNate: amazing what happens when you tell it to only look for things that start with 'SBML' :)
05:00:36  <TooTallNate>that's cool stuff
05:00:48  <TooTallNate>you'll have to show me how to use it some time :)
05:01:02  <tjfontaine>ya, there's also a '-x' that indicates to only wrap functions found in the current header file
05:01:33  <TooTallNate>tjfontaine: i wrote these by hand, haha https://github.com/TooTallNate/n8.io/blob/master/lib/git.js
05:01:35  <TooTallNate>it was painful
05:01:38  <TooTallNate>not terrible
05:01:42  <TooTallNate>but not fun either
05:02:07  <tjfontaine>heh is that libgit?
05:02:14  * lohkeyquit (Quit: lohkey)
05:02:20  <tjfontaine>a long long time ago is what pushed me down the path to write this software :)
05:02:41  * brsonjoined
05:03:00  <tjfontaine>in my opinion the point of this software is only to get you about 60% of the way, to get the tedious and obvious stuff out of the way
05:04:25  * stagas_joined
05:04:55  <TooTallNate>libgit2 technically
05:05:13  <tjfontaine>right
05:05:18  <tjfontaine>the one that works well :)
05:05:50  <tjfontaine>the next step would be to generate basic boiler plate for addon modules as well
05:06:06  <TooTallNate>that would be pretty cool
05:06:42  * stagasquit (Ping timeout: 264 seconds)
05:06:45  <tjfontaine>it's not that difficult, just some man hours
05:06:45  <TooTallNate>tjfontaine: because, similarly, i've been writing all of this by hand
05:06:46  <TooTallNate>https://github.com/TooTallNate/node-ogg/blob/master/src/binding.cc
05:06:50  * stagas_changed nick to stagas
05:07:18  <tjfontaine>ya, it's just too tedious :)
05:08:31  * brsonquit (Read error: Connection reset by peer)
05:08:48  * brsonjoined
05:13:58  * trevnorrisjoined
05:16:30  <tjfontaine>TooTallNate: https://gist.github.com/a10266f88d0a1f57b816
05:17:26  <tjfontaine>var git_tag_foreach_cb = exports.git_tag_foreach_cb = FFI.Function(ref.types.int32, [ref.types.CString, voidPtr, voidPtr]);
05:17:53  <tjfontaine>then you can change what you want to ref.types.Object
05:18:00  <trevnorris>isaacs: so no luck on the cc side eh? that's stinks.
05:18:34  <trevnorris>isaacs: so you saw an improvement in tcp_raw. is it possible to do something similar with http calls?
05:31:01  <TooTallNate>tjfontaine: wow, nice :D
05:32:23  <TooTallNate>tjfontaine: why do the constants get put in an object like that?
05:36:05  * TooTallNatequit (Quit: ["Textual IRC Client: www.textualapp.com"])
05:50:06  * indexzerojoined
06:03:48  <trevnorris>showing some performance numbers and isaacs want's them in like iterations/sec. but their up in the 50 millions. bump it down to iter/ms?
06:39:58  * qmxchanged nick to qmx|away
06:53:00  * lohkeyjoined
07:06:15  * brsonquit (Ping timeout: 260 seconds)
07:07:47  * brsonjoined
07:18:12  * brsonquit (Ping timeout: 248 seconds)
07:20:35  * brsonjoined
07:23:22  * EhevuTovjoined
07:35:09  * trevnorrisquit (Quit: Leaving)
07:44:30  * rendarjoined
07:51:16  * EhevuTovquit (Quit: This computer has gone to sleep)
07:51:49  * EhevuTovjoined
07:52:00  * lohkeyquit (Quit: lohkey)
08:01:56  * mikealquit (Read error: Connection reset by peer)
08:04:37  * mikealjoined
08:05:18  * mikealquit (Client Quit)
08:06:01  * loladiroquit (Quit: loladiro)
08:08:16  * paddybyersjoined
08:08:53  * loladirojoined
08:09:37  * loladiroquit (Client Quit)
08:11:55  * mikealjoined
08:50:24  * mmalecki[out]changed nick to mmalecki
08:58:28  * felixgejoined
09:05:36  * brsonquit (Read error: Connection reset by peer)
09:33:21  * einarosjoined
09:40:08  * paddybyersquit (Ping timeout: 245 seconds)
10:25:52  * EhevuTovquit (Quit: This computer has gone to sleep)
10:35:11  * indexzeroquit (Quit: indexzero)
10:38:02  * indexzerojoined
11:07:16  * paddybyersjoined
11:23:03  * paddybyersquit (Ping timeout: 245 seconds)
11:29:19  * piscisaureus_joined
11:34:08  * indexzeroquit (Quit: indexzero)
12:03:23  * hzjoined
12:03:39  * stagas_joined
12:04:19  * stagasquit (Ping timeout: 246 seconds)
12:04:34  * stagas_changed nick to stagas
12:12:34  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
12:18:11  * stagas_joined
12:18:20  * stagasquit (Ping timeout: 255 seconds)
12:18:24  * stagas_changed nick to stagas
12:43:52  * stagas_joined
12:45:08  * stagasquit (Ping timeout: 245 seconds)
12:45:17  * stagas_changed nick to stagas
12:57:54  <roxlu>hi, does libuv has something to generate a random number ?
13:09:24  * piscisaureus_joined
13:10:16  <indutny>nope
13:32:38  <mmalecki>roxlu: C does
13:32:47  <mmalecki>why'd you need anything in libuv :) ?
13:32:56  <mmalecki>also OpenSSL for extended random number generation
13:33:06  <indutny>obviously
13:38:07  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204])
13:44:05  * piscisaureus_quit (Ping timeout: 240 seconds)
14:08:32  <roxlu>thanks
14:08:46  <roxlu>I anticipated on MSVC not having rand() :#
14:09:24  * paddybyersjoined
14:14:59  * TheJHjoined
14:20:00  * KiNgMaRquit (Ping timeout: 264 seconds)
14:23:39  * karupaneruraquit (Ping timeout: 276 seconds)
14:24:05  <mmalecki>I think it does
14:24:42  * KiNgMaRjoined
14:24:51  <indutny>yeah, I remember something likes this
14:24:54  <indutny>s/likes/like/
14:25:20  <mmalecki>dark times, those were.
14:27:03  * karupanerurajoined
14:33:47  * paddybyersquit (Ping timeout: 260 seconds)
14:44:56  * einarosquit (Quit: leaving)
15:08:01  * piscisaureus_joined
15:15:30  * `3rdEdenjoined
15:25:06  * paddybyersjoined
15:31:24  * `3rdEdenquit (Remote host closed the connection)
15:52:38  * paddybyersquit (Ping timeout: 245 seconds)
15:57:39  * piscisaureus_quit (Read error: Connection reset by peer)
15:58:26  * piscisaureus_joined
16:08:35  * jmar777joined
16:21:04  * stagasjoined
16:23:05  <tjfontaine>ircretary: tell TooTallNate the constants go in an object because it can detect proper enums and do a reverse mapping, but with #define's there's no namespace for them to go in
16:23:05  <ircretary>tjfontaine: I'll be sure to tell tootallnate
16:25:21  * stagas_joined
16:28:13  * stagasquit (Ping timeout: 246 seconds)
16:28:15  * stagas_changed nick to stagas
16:36:57  * abraxasjoined
16:41:16  * abraxasquit (Ping timeout: 245 seconds)
16:49:48  * paddybyersjoined
16:58:49  * c4milojoined
16:59:39  * lohkeyjoined
17:15:00  * jmar777quit (Remote host closed the connection)
17:17:30  * piscisaureus_quit (Quit: ~ Trillian Astra - www.trillian.im ~)
17:20:23  * stagasquit (Ping timeout: 256 seconds)
17:23:28  * stagasjoined
17:38:21  * c4miloquit (Remote host closed the connection)
17:41:34  * jmar777joined
17:54:08  * perezdjoined
17:55:12  * lohkeyquit (Quit: lohkey)
18:00:38  * stagas_joined
18:02:08  * stagasquit (Ping timeout: 255 seconds)
18:03:01  * stagasjoined
18:05:45  * stagas_quit (Ping timeout: 276 seconds)
18:10:28  * stagasquit (Ping timeout: 248 seconds)
18:21:38  * c4milojoined
18:45:12  * mikealquit (Quit: Leaving.)
18:46:24  <isaacs>ircretary: tell trevnorris https://docs.google.com/spreadsheet/ccc?key=0AganzoeqkiHddE1JdmdUSEJlZ0FzRW10Y2FPMHBJT1E#gid=0
18:46:24  <ircretary>isaacs: I'll be sure to tell trevnorris
18:46:46  <isaacs>ircretary: tell trevnorris I'm having the script walk over all 255 commits from v0.9.3 to v0.9.4 right now. should be done in a few hours.
18:46:47  <ircretary>isaacs: I'll be sure to tell trevnorris
18:47:25  * stagasjoined
18:49:55  * stagas_joined
18:52:24  * stagasquit (Ping timeout: 264 seconds)
18:52:35  * stagas_changed nick to stagas
19:07:30  * stagasquit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204])
19:14:55  <MI6>joyent/node: isaacs v0.8 * 9a488a6 : blog: Correct shasums for v0.9.8 release - http://git.io/hNILfg
19:15:03  * V1joined
19:15:37  * V1changed nick to `3rdEden
19:22:31  * kristatejoined
19:26:40  * kristatequit (Remote host closed the connection)
19:26:54  * kristatejoined
19:27:21  * kristatequit (Remote host closed the connection)
19:28:13  * kristatejoined
19:29:12  <isaacs>tjfontaine: This is why we need benchmarks running on a CI setup: https://docs.google.com/spreadsheet/ccc?key=0AganzoeqkiHddE1JdmdUSEJlZ0FzRW10Y2FPMHBJT1E#gid=0
19:29:35  * kristatequit (Remote host closed the connection)
19:36:39  * stagasjoined
19:52:59  * loladirojoined
19:57:49  * EhevuTovjoined
20:02:28  * mikealjoined
20:07:21  * bnoordhuisjoined
20:14:04  * paddybyers_joined
20:16:20  * indexzerojoined
20:16:24  * paddybyersquit (Ping timeout: 276 seconds)
20:16:24  * paddybyers_changed nick to paddybyers
20:23:49  * c4miloquit (Remote host closed the connection)
20:31:07  * indexzeroquit (Quit: indexzero)
20:39:00  * hzquit
20:50:54  * loladiroquit (Quit: loladiro)
20:52:38  <tjfontaine>isaacs: you won't hear me say differently, spin up the vms you want me to use and I'll start moving my configuration over to them :)
20:53:48  * loladirojoined
21:03:24  * c4milojoined
21:07:12  * EhevuTovquit (Quit: This computer has gone to sleep)
21:08:49  * mikealquit (Quit: Leaving.)
21:15:08  * AvianFlujoined
21:22:37  * mikealjoined
21:24:05  * hzjoined
21:24:10  * brsonjoined
21:27:23  * indexzerojoined
21:32:15  * mikealquit (Quit: Leaving.)
21:32:24  <tjfontaine>bnoordhuis: those numbers are kinda odd
21:32:42  <tjfontaine>(on 4706)
21:32:59  <bnoordhuis>tjfontaine: there's also decidedly ungood
21:33:07  <bnoordhuis>possibly doubleplus
21:33:17  <tjfontaine>can we stick them in a memoryhole?
21:33:19  <bnoordhuis>*they're
21:34:06  <bnoordhuis>sadly perf doesn't give me a call graph for __memcpy_ssse3_back so i'm not sure where it's coming from
21:34:19  <bnoordhuis>might be the gc, might be Buffer.concat
21:34:56  <tjfontaine>seems like a good place for dtrace to fit in though
21:35:30  <tjfontaine>if there's a similar fall out on the smartos side
21:38:15  <bnoordhuis>yeah. i think i'm going to try brendan's flamegraph tool for perf
21:39:15  * indexzeroquit (Quit: indexzero)
21:45:26  * loladiroquit (Quit: loladiro)
21:47:38  * paddybyersquit (Ping timeout: 245 seconds)
21:48:12  <bnoordhuis>too bad it doesn't resolve user space events
21:48:30  <bnoordhuis>the flame graph for the kernel is more or less what i expect
21:50:00  * loladirojoined
21:50:00  * loladiroquit (Client Quit)
22:02:28  * mikealjoined
22:04:51  * rendarquit
22:06:30  * loladirojoined
22:12:38  * TheJHquit (Ping timeout: 245 seconds)
22:16:07  * paddybyersjoined
22:27:35  * stagas_joined
22:28:16  * mikealquit (Quit: Leaving.)
22:28:17  * TheJHjoined
22:30:02  * stagasquit (Ping timeout: 252 seconds)
22:32:46  * stagas_quit (Ping timeout: 256 seconds)
22:39:00  * `3rdEdenquit (Remote host closed the connection)
22:41:33  * mikealjoined
22:41:47  * wolfeid__quit
22:41:57  * wolfeidaujoined
22:46:29  <isaacs>WOW http://cl.ly/image/3b2T0J0Q2p1d
22:46:51  <isaacs>something happened between 0.9.3 and 0.9.4 that we haven't recovered from
22:48:50  <isaacs>here's a more zoomed out view: http://cl.ly/image/2x2O2s0W2E3P
22:49:35  <isaacs>bnoordhuis: what are you trying to flamegraph?
22:50:01  <isaacs>bnoordhuis: you can repurpose some of the stuff in benchmark/http-flamegraph.sh probably
22:50:03  <bnoordhuis>isaacs: this -> https://github.com/joyent/node/issues/4706
22:50:14  <isaacs>bnoordhuis: i prune them a bit to reduce eyebleed
22:51:03  <isaacs>bnoordhuis: looks like Buffer.concat to me
22:51:17  <bnoordhuis>that seems likely
22:51:41  <isaacs>in fact, i'd bet money that that's the problem.
22:51:45  <bnoordhuis>but i'd expect to see node::Bufer::Something in the call graph somewhere
22:51:50  <bnoordhuis>but it's not showing up
22:51:53  <isaacs>streams2 explicitly chooses to do more Buffer copying and less write() syscalling
22:51:58  <bnoordhuis>probably a perf shortcoming
22:52:03  <isaacs>looks like that's probably not a wise choice.
22:52:16  <isaacs>but it'd be easy to fix
22:53:30  <isaacs>bnoordhuis: did you see this? http://cl.ly/image/2x2O2s0W2E3P
22:53:38  <isaacs>bnoordhuis: and the zoomed in v0.9.2 - v0.9.4: http://cl.ly/image/3b2T0J0Q2p1d
22:54:11  <bnoordhuis>yeah. any idea what it is this?
22:54:23  <isaacs>not sure
22:54:27  <bnoordhuis>(we should have those buildbots back. they were nice)
22:54:32  <isaacs>YES. i agree.
22:54:50  <isaacs>bnoordhuis: i think joyent hired some guy to maybe work on that... ;)
22:55:17  <isaacs>tjfontaine: i'd get you looking at it now, but i feel bad making you work before joyent's paying you
22:55:32  <isaacs>bnoordhuis: i'm running it again on a smaller set of commits, right around that huge dip
22:55:54  <isaacs>bnoordhuis: there's another slight regression from streams2, but then it pretty much goes back to 0.9.4 levels by v0.9.8/master
22:56:01  <isaacs>bnoordhuis: could be better, but clearly we're not addressing the core issue.
22:56:24  <bnoordhuis>on what system is that btw?
23:01:01  <isaacs>bnoordhuis: smartos
23:01:21  <bnoordhuis>doesn't seem to be libuv or v8
23:01:21  <isaacs>bnoordhuis: could run the same thing on linux pretty easily, but the smartos machine is big and strong :)
23:01:25  <isaacs>bnoordhuis: http://cl.ly/image/3r3X2M001v32/o
23:01:33  <isaacs>zoomed in on that big dip
23:01:40  <bnoordhuis>could be streams2 but also (dum dum dum) d607d85 node: remove idle gc
23:02:29  <bnoordhuis>crying baby, biab
23:03:35  <isaacs>this performance regression is such a pita, even ben's baby is crying about it
23:05:18  <isaacs>hm... so, this sucks. there was a while when the build wasn't building on smartos. and my little test script just skips those.
23:09:47  * `3rdEdenjoined
23:16:00  <isaacs>doing it again to log those as 0 so i can at least see them in teh graph
23:16:27  * garbagecollectiojoined
23:16:57  <garbagecollectio>whats the diff between libel and ibuv
23:17:05  <garbagecollectio>libev and libuv
23:18:03  * `3rdEdenquit (Ping timeout: 245 seconds)
23:18:40  * jmar777quit (Remote host closed the connection)
23:19:18  * jmar777joined
23:23:56  <bnoordhuis>garbagecollectio: tons of awesomeness. also windows support, fs/dns/os functions, etc.
23:24:06  * jmar777quit (Ping timeout: 264 seconds)
23:24:13  <bnoordhuis>libuv is a strict superset of libev
23:24:24  <garbagecollectio>why exactly has this not been used in browser side javascript interpreters?
23:27:26  <isaacs>garbagecollectio: libuv is a c library, not a js library
23:27:38  <isaacs>bnoordhuis: this fs regression is great info
23:27:46  <isaacs>bnoordhuis: i should have a fix to test soon, this afternoon probably
23:27:52  <garbagecollectio>i know but you could use it to make a js interpreter that supported the event loop
23:28:07  <bnoordhuis>someone did for chromium
23:28:14  <garbagecollectio>link?
23:28:38  <bnoordhuis>eh, not sure. it was someone from intel
23:33:26  <bnoordhuis>okay, off to bed. sleep tight all
23:36:57  * loladiroquit (Quit: loladiro)
23:37:04  <mmalecki>night Ben
23:38:15  * bnoordhuisquit (Ping timeout: 276 seconds)
23:57:37  <txdv>garbagecollectio: what hasn't been used in browser side javascript interpreters?
23:58:11  <txdv>you mean why the node api hasn't been used in client side(browser side)?
23:59:28  * AvianFluquit (Remote host closed the connection)