#instantbird log on 12 17 2012

All times are UTC.

00:09:02 <Mic> :o
00:09:32 <Mic> Cool, we've got a tool to help us improve performance :)
00:09:39 <Mic> Good luck, flo-reti1! :)
00:12:45 <-- qlum has quit (Quit: Getting the <censored> out.)
00:16:32 <flo-reti1> this is the display of a very long twitter log in 4000ms chunk (the current value in the code is 40ms, but I wanted to have longer periods where the CPU was at 100% for the profiling) http://people.mozilla.com/~bgirard/cleopatra/#report=90f9bf83a5f49cd5d8481e190f026c6197159ac9
00:18:26 <-- meh has quit (Quit: The point is: don't lose your dinosaur.)
00:19:42 <-- Mic has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
00:27:50 <flo-reti1> I think I know why bubbles is so slow :)
00:33:35 <-- mpmc has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
01:08:03 <instant-buildbot> build #365 of linux-onCommit is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux-onCommit/builds/365  blamelist: Florian Qu?ze <florian@instantbird.org>, Patrick Cloke <clokep@gmail.com>
01:17:51 <instant-buildbot> build #713 of linux-nightly-default is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/713
01:21:11 --> rosonline has joined #instantbird
01:24:34 <-- rosonline has quit (Quit: Instantbird 1.3 -- http://www.instantbird.com)
01:48:51 <instant-buildbot> build #351 of win32-onCommit is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/win32-onCommit/builds/351  blamelist: Florian Qu?ze <florian@instantbird.org>, Patrick Cloke <clokep@gmail.com>
02:04:41 <-- DGMurdockIII has quit (Ping timeout)
02:08:09 --> DGMurdockIII has joined #instantbird
02:26:05 <-- DGMurdockIII has quit (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
02:34:26 <-- Optimizer has quit (Ping timeout)
02:37:39 --> Optimizer has joined #instantbird
02:58:57 <instant-buildbot> build #805 of win32-nightly-default is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/805
03:01:57 --> DGMurdockIII has joined #instantbird
03:19:11 <instant-buildbot> build #714 of linux-nightly-default is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/linux-nightly-default/builds/714
03:21:30 <-- Optimizer has quit (Ping timeout)
03:24:54 --> Optimizer has joined #instantbird
03:55:40 --> deltafalcon has joined #instantbird
04:21:14 <instant-buildbot> build #806 of win32-nightly-default is complete: Failure [failed compile]  Build details are at http://buildbot.instantbird.org/builders/win32-nightly-default/builds/806
04:24:08 <instant-buildbot> build #716 of macosx-nightly-default is complete: Success [build successful]  Build details are at http://buildbot.instantbird.org/builders/macosx-nightly-default/builds/716
04:55:15 <-- EionRobb has quit (Quit: Leaving.)
04:57:06 --> EionRobb has joined #instantbird
04:58:54 <-- EionRobb has quit (Ping timeout)
05:02:31 <instantbot> Just appeared in Pidgin News - default :
05:02:32 <instantbot> https://kingant.net/2011/08/tool-to-view-dns-srv-records-for-xmpp/ - Mark Doliner: Tool to View DNS SRV Records for XMPP
05:02:33 <instantbot> https://kingant.net/2012/04/announcing-our-four-summer-of-code-students/ - Mark Doliner: Announcing our four Summer of Code students!
05:02:35 <instantbot> https://kingant.net/2012/03/pidgin-accepted-to-2012-summer-of-code/ - Mark Doliner: Pidgin Accepted to 2012 Summer of Code!
06:07:26 <-- DGMurdockIII has quit (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
06:13:08 <-- deltafalcon has quit (Ping timeout)
06:17:13 --> deltafalcon has joined #instantbird
06:29:37 <-- deltafalcon has quit (Ping timeout)
06:33:28 --> deltafalcon has joined #instantbird
06:42:48 <-- Optimizer has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
07:38:24 <-- deltafalcon has quit (Ping timeout)
07:42:12 --> deltafalcon has joined #instantbird
07:47:57 --> Even has joined #instantbird
07:47:57 * ChanServ sets mode +o Even 
08:35:52 <-- flo-reti1 has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
08:40:38 --> Mic has joined #instantbird
08:40:39 * ChanServ sets mode +h Mic 
09:26:18 <-- gerard-majax_ has quit (Quit: Ex-Chat)
09:26:27 --> gerard-majax__ has joined #instantbird
09:33:31 --> Even1 has joined #instantbird
09:33:33 --> jb has joined #instantbird
09:33:39 <-- Even1 has quit (Quit: Even1)
09:33:51 --> Even1 has joined #instantbird
09:34:05 <-- gerard-majax__ has quit (Connection reset by peer)
09:34:10 --> gerard-majax_ has joined #instantbird
09:35:03 <-- jb has quit (Write error: Broken pipe)
09:35:56 --> jb has joined #instantbird
09:37:58 <-- gerard-majax_ has quit (Ping timeout)
09:50:38 <-- jb has quit (Input/output error)
09:50:42 --> jb has joined #instantbird
10:10:07 <-- Mic has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
10:19:11 --> gerard-majax_ has joined #instantbird
10:26:37 <-- jb has quit (Quit: jb)
10:26:59 --> jb has joined #instantbird
10:31:12 --> flo-retina has joined #instantbird
10:31:12 * ChanServ sets mode +qo flo-retina flo-retina 
10:33:52 --> rosonline has joined #instantbird
10:36:59 <flo-retina> clokep: the moz17 update isn't a full success: http://buildbot.instantbird.org/waterfall :-S
10:42:32 <-- rosonline has quit (Quit: Instantbird 1.3 -- http://www.instantbird.com)
10:43:20 --> rosonline has joined #instantbird
10:54:57 <-- gerard-majax_ has quit (Quit: Ex-Chat)
10:55:04 --> gerard-majax has joined #instantbird
10:55:45 <-- gg0 has quit (Quit: leaving)
10:55:51 --> gg0 has joined #instantbird
11:05:47 <-- rosonline has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
11:05:52 --> rosonline has joined #instantbird
11:06:44 --> mpmc has joined #instantbird
11:12:08 <-- rosonline has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
11:12:19 --> rosonline has joined #instantbird
11:18:39 --> clokep has joined #instantbird
11:18:39 * ChanServ sets mode +o clokep 
11:24:06 * flo-retina isn't sure if http://pastebin.instantbird.com/115111 is a spam or needs a reply
11:27:56 <clokep> "22:58:11 <flo-reti1> aleth: do you remember if the bug about using nsISimpleEnumerator in notifications being idiotic was filed in BIO or BMO?" BMO.
11:28:22 <flo-retina> clokep: do you remember any keyword we can use to find that bug?
11:28:47 <clokep> flo-retina: Let me look for it in a second.
11:29:43 <clokep> flo-retina: I must have something in my mozconfig that disables something. :-/
11:33:34 <clokep> flo-retina: https://bugzilla.mozilla.org/show_bug.cgi?id=790539 ?
11:35:02 <flo-retina> clokep: no, https://bugzilla.mozilla.org/show_bug.cgi?id=791199
11:35:17 <flo-retina> (the link was in comment 14 of the bug you mentioned :))
11:35:30 <clokep> Ah, I knew it was filed by Wladimir, but oculdn't remember his name. :-D
11:36:04 <flo-retina> and he may be right that this may explain the other strange bug that we could never reproduce
11:36:21 <flo-retina> maybe observers aren't correctly removed by the UI in some cases before we add them again
11:38:42 <flo-retina> his suggestion of using nsIArray seems right
11:39:23 <flo-retina> in queryElementAt we specify explicitly the interface we want to QI (so we can avoid the pointless nsISupports QI), and we could then drop the nsIClassInfo implementation
11:39:35 <flo-retina> we should be able to do something much saner and much faster
11:40:31 <flo-retina> (the point of implementing nsIClassInfo is to avoid having to explicitly QI, but if we explicitly QI anyway, we don't need class info any more)
11:43:46 <clokep> Right, tha tmakes sense.
11:44:39 * flo-retina isn't sure if he should take that bug, or let aleth take it
11:44:43 <flo-retina> there's a C++ part :-/.
11:44:44 <instantbot> c++ sucks
11:47:03 * flo-retina is looking forward to a much snappier Instantbird 1.4 :)
11:50:32 <flo-retina> then we should debug memory usage issues
11:50:49 <flo-retina> my non-debug builds that displays a log with 11k tweets is taking 600+MB
11:50:55 <flo-retina> that's a little bit excessive ;)
11:52:16 <flo-retina> I would like to figure out why we have 4+MB of cross-compartment-wrappers. They are not that expensive, but I suspect they create reference cycles of things that should be GC/CC'ed.
12:00:03 <rosonline> Hello! I don't connect with my twitter account and my VKontakte account doesn't download the contact list
12:00:22 * clokep has no idea about tha tbuild bustage yet...
12:00:56 <rosonline> I'm  using the Instantbird 1.,3 and 1.4 pre
12:05:40 <-- clokep has quit (Connection reset by peer)
12:13:33 --> rosonlin1 has joined #instantbird
12:30:11 <-- deltafalcon has quit (Quit: Instantbird 1.3 -- http://www.instantbird.com)
12:32:54 --> meh has joined #instantbird
12:55:27 --> clokep_work has joined #instantbird
12:55:27 * ChanServ sets mode +o clokep_work 
13:00:03 --> qlum has joined #instantbird
13:10:12 --> Mic has joined #instantbird
13:10:13 * ChanServ sets mode +h Mic 
13:26:14 <-- Mic has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
14:29:24 --> mconley has joined #instantbird
14:37:27 <-- rosonlin1 has quit (Quit: rosonlin1)
14:45:39 <-- mconley has quit (Ping timeout)
14:50:41 --> mconley has joined #instantbird
15:06:10 <-- rosonline has quit (Client exited)
15:48:40 --> DGMurdockIII has joined #instantbird
16:13:37 --> Optimizer has joined #instantbird
16:27:33 --> Mic has joined #instantbird
16:27:33 * ChanServ sets mode +h Mic 
16:29:58 <Mic> flo-retina: http://log.bezut.info/instantbird/121217/#m7
16:30:09 <Mic> Is it the timeouts we use for scrolling the content up?
16:30:15 <Mic> (a wild guess;)
16:30:40 <flo-retina> Mic: My guess is it's the getComputedStyle that forces a synchronous reflow for each message.
16:31:01 <flo-retina> Mic: and what makes it extra stupid is that we don't do it to get the size of the bubble, but to get it's color!!
16:31:08 <flo-retina> I'm sure we can optimize
16:31:10 <flo-retina> I'll try tonight
16:37:08 <Mic> clokep_work: http://log.bezut.info/instantbird/121217/#m89: he's the guy behind Adblock Plus -> you can look up his name on the ABP website if you remember ;)
16:53:22 <Mic> The coding style in Bubble's Footer.html is so awful :(
16:55:46 <flo-retina> Mic: are you volunteering to clean it up? ;)
16:56:09 <Mic> Would you accept such a patch?
16:56:26 <flo-retina> why not, if it's done correctly?
16:58:24 <Mic> OK, good to know :)
16:59:13 <flo-retina> I'm even more likely to accept it if it's also a performance improvement
16:59:21 * flo-retina feels like there are too many regexps there
16:59:29 <flo-retina> and generally too much JS code
17:02:22 <Mic> I agree on the latter but there is only one regexp in this file...
17:02:41 <flo-retina> really?
17:03:05 <Mic> No, sorry.
17:03:25 <Mic> I thought looking for ".exec" was good enough ...
17:03:28 <Mic> My mistake.
17:03:41 <flo-retina> I meant all the .replace calls
17:04:04 <flo-retina> FWIW, 55% of the time while displaying a 11k-tweets-log is spent in the setColors function
17:04:12 <Mic> :o
17:04:23 <flo-retina> but I would expect all of that to be the synchronous reflows caused by the getComputerStyle call
17:05:02 <flo-retina> I won't try to optimize details of that function (I mean, I won't try that for the sake of performance; it's still worth cleaning up for readability) until I've checked how expensive it is once the sync reflows are gone
17:16:22 <-- Even1 has quit (Connection reset by peer)
17:16:50 <-- Kaishi has quit (Quit: Kaishi)
17:24:52 <clokep_work> Mic: I know that, I couldn't remember what extension the guy was from (I was htinking it was Scriptish, which is Erik someone...)
17:24:58 <clokep_work> But then I said it was Wladimir and was like "Doh."
17:34:11 <Mic> bye
17:34:32 <-- Mic has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
17:45:41 --> aleth has joined #instantbird
17:45:41 * ChanServ sets mode +h aleth 
17:51:44 --> Mook_as has joined #instantbird
18:03:53 <-- gerard-majax has quit (Ping timeout)
18:16:27 <-- Optimizer has quit (Ping timeout)
18:16:41 <-- Even has quit (Input/output error)
18:18:30 <-- jb has quit (Ping timeout)
18:19:37 <-- DGMurdockIII has quit (Quit: ChatZilla 0.9.89 [Firefox 20.0a1/20121209040202])
18:19:44 --> Optimizer has joined #instantbird
18:21:33 <-- Optimizer has quit (Ping timeout)
18:24:05 --> rosonline has joined #instantbird
18:25:18 --> Optimizer has joined #instantbird
18:33:29 <-- Optimizer has quit (Ping timeout)
18:34:08 <-- mpmc has quit (Ping timeout)
18:35:12 --> mpmc has joined #instantbird
18:37:06 --> Optimizer has joined #instantbird
18:37:07 <aleth> Ouch, a getComputedStyle just to grab the colour is bad.
18:38:14 <aleth> Surely we can supply the colour in a better way ;)
18:38:43 <aleth> It's great if Mic looks into this, since he already ran into a problem with the SVG bubbles where he couldn't get at the colour...
18:40:41 <aleth> Hmm, sounds like storing the detected nicks in a message when we receive it would also significantly speed things up
18:41:36 --> gerard-majax has joined #instantbird
18:41:50 <aleth> For twitter adding chat buddies, really the answer would be bug 1038
18:41:53 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1038 enh, --, ---, nobody, NEW, Add followed people to the participants timeline
18:44:16 <aleth> flo-retina: "Using .style.color may be faster" in _setBuddyColor is absolutely right and I should have thought of it when I did the speedup patch
18:44:58 <flo-retina> aleth: having followed people there wouldn't change anything.
18:45:08 <flo-retina> aleth: when I track #fail, the tweets I see are from people I don't follow
18:45:40 <aleth> flo-retina: Right, but that's somewhat artificial, isn't it? The usual use case is you are displaying a timeline in which most of the tweets arrive from followed people?
18:46:03 * aleth not quite sure how most people use twitter though
18:46:23 * clokep_work is unsure what aleth is getting at.
18:46:42 <clokep_work> Ah, you mean essentailly precaching all the people you follow?
18:46:47 <clokep_work> It depends on how you use Twitter, yes.
18:46:54 <flo-retina> aleth: "a getComputedStyle just to grab the colour is bad." I oversimplified my explanation to Mic. It's even more stupid than that. The getComputedStyle is to grab the URL of the background, so that the code knows if it should use a left or right arrow for the bubble
18:46:56 <aleth> Adding them to the nicklist when we first join the timeline
18:47:14 <aleth> flo-retina: nooo really?
18:47:42 <flo-retina> "that's somewhat artificial" yeah. That's why I wasn't sure if it was a case we should optimize or not
18:47:47 <aleth> clokep_work: That's desirable for other reasons anyway (hence the bug exists)
18:48:15 <flo-retina> aleth: my feeling was that if we receive several tweets in the same network packet, we should parse all of them, then send the add-chat-buddy notifications, and then the messages.
18:48:23 <flo-retina> but I don't know how often that happens in real life
18:48:34 <flo-retina> (and I honestly don't care all that much about the twitter performances)
18:49:02 <clokep_work> aleth: I know it's desirable for other reason, but we're not talking about those right now. ;) That's why we have a bug filed for it.
18:49:24 <aleth> clokep_work: But it's nice to discover that things we were thinking about already also lead to speed improvements...
18:49:51 <flo-retina> aleth: yeah :)
18:50:02 <aleth> The show nick thing in particular
18:50:19 <flo-retina> ah, have you found anything in show nick that needs optimizing?
18:50:38 <aleth> "a third of the time is spent in Show Nick's get regexp function"
18:51:07 <flo-retina> yeah, but it was in a conversation with 11k tweets, so 11k nicks ;)
18:51:16 <aleth> Seems to me if we stored the nicks in the message (and log) we would at least only be doing that once per message...
18:51:17 <flo-retina> and we probably had to change the regexp each time a nick was added
18:51:18 <aleth> Oh OK :P
18:51:31 <flo-retina> so that was 11k getRegexp calls
18:51:33 <aleth> 11k nicks is an extreme regex...
18:52:18 <Mook_as> wouldn't you expect nicks in twitter to all start with "@"?
18:52:35 <clokep_work> I don't think we consider that part of the nick.
18:52:46 <Mook_as> (of course, that would involve a custom nick parser thing, so that might be hard to do)
18:53:25 <aleth> The @ isn't part of the nick, it's part of an "@-mention"
18:53:29 <Mook_as> ah, okay.
18:53:42 * Mook_as goes off to look at things he actually understands instead
18:54:08 <aleth> We could profile a long #ubuntu conv opened from hold, to get a more standard idea of a "many nicks" situation
18:55:39 <flo-retina> aleth: what about we start by optimizing what we have already identified as being slow in the nicklist, before working more on #ubuntu? ;)
18:56:09 <aleth> #ubuntu is kind of an outlier anyway...
18:56:42 <flo-retina> when looking at http://people.mozilla.com/~bgirard/cleopatra/#report=08fd44abd0970bdb6dd40dbde5cbbee528180d79, 28.6 of the total time is in Yarr (the regexp JIT compiler)
18:57:13 <flo-retina> (warning, that profile has a strong tendency to freeze my browser)
18:57:39 <clokep_work> Maybe we should profile the profile first so we can quickly view our profile? ;)
18:58:12 <aleth> "(warning, that profile has a strong tendency to freeze my browser)" ...yeah :(
19:01:54 <aleth> flo-retina: What's atypical about the twitter #fail situation is that all those 11k nicks are active (so there are 11k timers).
19:01:59 <flo-retina> aleth: 98% of the shownick time is compiling the regexp. Using it is 0.4% of the time.
19:02:27 <flo-retina> aleth: another atypical thing is that each new message is from a new nick, so we discard the show nick regexp all the time ;)
19:03:02 <aleth> Right... no wonder it's spending more time making new regexes than using it ;)
19:04:22 <flo-retina> so yeah, tracking 'a' on twitter really doesn't look like a real life situation
19:06:01 <flo-retina> aleth: I'm not sure we really need more than one timer
19:08:17 <flo-retina> but I don't remember how much that showed in the profile
19:08:23 <clokep_work> Adding all the new nicks at once should be fairly trivial.
19:09:03 <aleth> flo-retina: Internally, there only is one timer.
19:09:31 <flo-retina> aleth: yes and no.
19:10:03 <flo-retina> aleth: I think each setTimeout call still creates a timer object (to hold the callback) and still needs to obtain locks to put itself on the timer thread.
19:10:54 <flo-retina> aleth: + we could likely reduce the count of timer callback fired. We don't really care if a nick is marked inactive after 60 or 61 minutes
19:11:11 <aleth> I would not have thought that was expensive, but idk
19:11:19 <aleth> Right, we don't need that level of precision...
19:11:29 <flo-retina> aleth: I don't know either. That's why we need a profiler ;)
19:11:40 <flo-retina> aleth: and expensive has different meanings.
19:11:56 <aleth> In this case I meant purely in terms of time
19:12:05 <flo-retina> when I'm talking about locks, it's potentially expensive (I'm not sure yet) in CPU time right now (ie UI responsiveness)
19:12:27 <flo-retina> firing timers every second instead of grouping every minute is expensive in that it wakes up the CPU too often, and drains the battery.
19:13:22 <flo-retina> what I still don't know is if we care. Because even in a busy channel with 2k nicks, I would be surprised to have more than 50 active nicks.
19:13:49 <aleth> But the internal timer is running already afaik, it just waits for the next upcoming timer in the list of timers
19:14:41 <aleth> Yes, I'd also be surprised if it was worth worrying about
19:15:03 <aleth> (for that reason)
19:15:08 <flo-retina> what we will need to worry about is finding real life things to benchmark if we want to continue playing with the shiny new toy ;)
19:15:34 <aleth> The huge Bubbles CPU usage on Mac seems a good target ;)
19:15:42 <flo-retina> (that's the reason why I r+'ed the patch even though I frowned a bit at the timers that 'could' in corner cases become very numerous ;))
19:16:06 <flo-retina> aleth: it's not very easy to profile something that takes only 3% of the CPU :(
19:16:15 <flo-retina> but I'm definitely interested in that ;)
19:17:55 <flo-retina> btw, if we wanted to optimize shownick, we could have 2 regexps
19:18:14 <flo-retina> one with the last 50 or so added nicks. And one with the older nicks.
19:18:27 <flo-retina> compiling a regexp with only 50 nicks shouldn't be slow.
19:18:46 <flo-retina> but that would really feels like optimizing for an artificial case
19:28:36 <-- mpmc has quit (Ping timeout)
19:31:07 --> mpmc has joined #instantbird
19:36:26 <mpmc> Hmm! Anyone noticed that if you leave a IB chat window open & shut down your PC it'll stall windows from shutting down and crash?
19:37:07 <clokep_work> mpmc: Are you on a nightly.
19:37:19 <mpmc> clokep_work: Yes sir.
19:38:17 <clokep_work> It's been happening to me for a bit, yes. I was hoping one of the recent check-ins would fix it...
19:38:32 <clokep_work> Do you know when it started?
19:38:50 <mpmc> Not really no.
19:38:54 * clokep_work wants to blame bug 1846 still...
19:38:58 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1846 min, --, 1.4, aleth, RESO FIXED, Changing the status to available while an IRC account is in the disconnecting state doesn't reconnec
19:40:10 <aleth> There have been a bunch of build failures so the fix may not be in the latest nightly
19:40:16 <clokep_work> I know.
19:40:20 --> Kaishi has joined #instantbird
19:40:25 <clokep_work> I have no idea what's up with the Windows build failure.
19:40:39 <clokep_work> I don' tknow what the configuration is on that machine either. :-/
19:40:42 <mpmc> I've also noticed that if you try and stop an MSN account connecting during 'handshaking' it'll crash when you try to exit the client :p
19:40:54 <clokep_work> mpmc: Did you file a bug?
19:41:12 <clokep_work> (No. Then we probably don't know about the issue. ;))
19:41:23 * mpmc is scared of bug filing as they usually get rejected :p
19:41:35 * clokep_work isn't sure why that's ":-P".
19:41:38 <clokep_work> Bugs are cheap.
19:41:46 <clokep_work> If it is a real bug it won't get rejected.
19:42:13 <rosonline> hello! Are you seen my text?
19:42:15 <flo-retina> clokep_work: yes, a bug was filed on that, and we think it's bug 1846
19:42:18 <instantbot> Bug https://bugzilla.instantbird.org/show_bug.cgi?id=1846 min, --, 1.4, aleth, RESO FIXED, Changing the status to available while an IRC account is in the disconnecting state doesn't reconnec
19:42:29 <aleth> flo-retina: When I focus a callstack, I have the distinct impression the remaining items don't add up to 100%. Am I missing something?
19:43:15 <flo-retina> I'm not sure of what you mean by "focus a callstack", nor of what the "remaining items" are :(
19:43:39 <aleth> From the profiler context menu, or by clicking the little arrow to the right of a line
19:44:10 <flo-retina> oh, ok
19:44:27 <flo-retina> the difference between 100% and the sum of the remaining items should be the time spent directly in the method you focused
19:44:38 <aleth> Ah.
19:44:49 <aleth> That makes sense :)\
19:44:51 <aleth> thanks
19:44:52 <flo-retina> See the column "self" which indicates the time spent in that method
19:45:10 <flo-retina> and compare to "running" that's the time spent in that method + all the method it's called.
19:45:22 <aleth> The "self" column is zero more often than it should be then...
19:46:48 <flo-retina> we should also optimize the QI of prplIMessage
19:47:27 <flo-retina> I don't think prplIMessage really needs to implement nsIClassInfo
19:51:21 <flo-retina> bah, frozen again :(
19:55:39 <aleth> It's a shame the lisbox XUL doesn't cache the get_listBoxObject result since it seems to be used a lot...
19:56:02 <aleth> There's probably a good reason though
19:56:38 <flo-retina> It may just be that the code is old
20:10:01 --> EionRobb has joined #instantbird
20:11:52 <flo-retina> I commented out the getComputedStyle and reprofiled
20:12:40 <flo-retina> the setColors function is still very visible in the profile (19.4+% instead of 55 before), but the sync reflows are gone
20:12:44 <flo-retina> things feel much faster
20:12:58 <flo-retina> so I guess what I should really do is have a counter of how many messages are displayed per second.
20:13:31 <flo-retina> (because profiling won't give me that information, and with 11k messages in my log, I'm unlikely to get something that displays immediately even if my code is correctly optimized)
20:16:59 --> jb has joined #instantbird
20:25:45 * clokep_work mumbles about ctrl+shift+w not working...
20:27:00 --> EionRobb1 has joined #instantbird
20:27:27 <-- EionRobb has quit (Ping timeout)
20:32:37 <Kaishi> what's that supposed to do?
20:32:42 <Kaishi> reopen a closed tab?
20:33:35 <clokep_work> That's what I'd like it to do. :P
20:33:38 <clokep_work> It doesn't do anything.
20:35:58 <Kaishi> ctrl-shift-t is the more common keystroke for that, I thought.
20:36:10 <clokep_work> Yeah, typo. Sorry.
20:36:30 <Kaishi> nah, I'd prefer ctrl-shift-w, because that's logical
20:36:53 <-- mpmc has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
20:36:59 --> mpmc has joined #instantbird
20:37:13 <clokep_work> ctrl+shift+w is apparently quit in Firefox...
20:37:31 <clokep_work> But yeah, shift is usually "the opposite" so, it would make more sense, I agree.
20:53:27 <-- rosonline has quit (Quit: http://www.mibbit.com ajax IRC Client)
20:53:55 <-- aleth has quit (Input/output error)
21:15:53 <-- jb has quit (Ping timeout)
21:18:32 --> jb has joined #instantbird
21:20:58 <-- jb has quit (Ping timeout)
21:25:07 --> jb has joined #instantbird
21:28:44 <-- clokep_work has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
21:32:02 <-- jb has quit (Ping timeout)
21:36:41 --> DGMurdockIII has joined #instantbird
21:45:08 <flo-retina> I'm timing the display of the 11k-tweets conversation before commenting out the getComputedStyle, and after.
21:45:20 <EionRobb1> neat :)
21:45:26 <EionRobb1> is getComputedStyle slow?
21:45:27 <flo-retina> 36.2s before
21:45:30 * EionRobb1 is now known as EionRobb
21:45:41 <flo-retina> EionRobb: it causes a synchronous flush of the layout.
21:45:48 <EionRobb> eww
21:47:28 <flo-retina> EionRobb: so it's slow only if you call it in a loop just after changing something in the DOM ;)
21:47:42 <EionRobb> right
21:48:04 --> jb has joined #instantbird
21:48:32 <flo-retina> 20.3s without the getComputedStyle.
21:49:07 <-- DGMurdockIII has quit (Quit: ChatZilla 0.9.89 [Firefox 20.0a1/20121216040201])
21:49:07 <flo-retina> still "slow" (although I really don't think real users need to display 11k messages immediately)
21:49:47 <-- jb has quit (Ping timeout)
21:50:02 <EionRobb> what other bottlenecks are there?
21:50:07 --> jb has joined #instantbird
21:50:14 <flo-retina> do you want to look at profiles? ;)
21:50:59 <EionRobb> I think I just threw up a little ;)
21:51:11 <EionRobb> actually yeah, lets have a look at the profiles.  I'm a curious chap today
21:51:25 <flo-retina> EionRobb: there are lots of them in the log ;)
21:52:11 <EionRobb> do you have one online?
21:52:30 <flo-retina> they are all online
21:52:48 <flo-retina> the profiler's UI is a webapp
21:52:59 <EionRobb> good stuff
21:53:01 <EionRobb> link me, baby
21:54:46 <flo-retina> EionRobb: http://people.mozilla.com/~bgirard/cleopatra/#report=c82ebfd042be610932afe168c0fc75c3f8074c4e is a profile of displaying messages, after removing the getComputedStyle
22:00:25 <EionRobb> "JaegerShot"? lol
22:02:03 <EionRobb> far out, there's some deep testing going on there
22:02:13 <EionRobb> *nesting
22:20:29 --> clokep has joined #instantbird
22:20:29 * ChanServ sets mode +o clokep 
22:24:44 <clokep> EionRobb: We're doing shots?!
22:26:09 <EionRobb> apparently so
22:27:45 <EionRobb> so in that profile, what things can you and can you not change?
22:28:03 <EionRobb> eg, you probably can't change mozilla::dom::CSS2PropertiesBiding::genericSetter() right?
22:28:04 <flo-retina> I'm annoyed that I don't see an easy way to know the expected direction of a bubble's arrow :(
22:28:26 <flo-retina> EionRobb: if it's expensive, we can try to call it less often
22:29:08 <EionRobb> oic it says 'instantbird' in grey next to the function if its one of yours
22:29:51 <clokep> Or "chat" or "purplexpcom" most likely...
22:31:43 <EionRobb> so if I said 'omg setColors() in viewlog.xul is expensive, plzfixkthxbai' that wouldn't help much, right? :P
22:32:14 <clokep> Not unless you're willing to figure out how to make it less expensive. ;)
22:32:17 <flo-retina> EionRobb: it's much less expensive than before ;)
22:32:32 <flo-retina> clokep: I have ideas for that
22:34:40 <flo-retina> clokep: I think it's expensive to set lots of .style properties on each messages, so I we could probably move a lot of that stuff to static CSS files
22:35:07 <clokep> :)
22:35:12 <EionRobb> :)
22:35:27 <flo-retina> (and that would help for memory usage too, as we would have at most 36 set of rules, instead of one per message...
22:35:32 <clokep> flo-retina: Do you know if MSVC the buildbot is running? What OS? Etc.
22:35:47 <flo-retina> clokep: Win7 64bit.
22:36:01 <EionRobb> you tried building IB as a win8 app?
22:36:02 <flo-retina> and I would bet on MSVC2010
22:36:14 <clokep> That's what I was thinking too...
22:36:19 <clokep> EionRobb: No.
22:36:32 <clokep> I mean, I'm compiling on Windows 8, but not as a "Metro App".
22:39:22 * mpmc shudders at the thought of windows 8.
22:39:44 <clokep> Why?
22:39:46 <-- jb has quit (Ping timeout)
22:39:52 <EionRobb> what is checkNewText() in viewlog.xul supposed to do?  is that what's called when new messages are added?
22:40:05 <clokep> EionRobb: http://lxr.instantbird.org/instantbird/search?string=checkNewText ;)
22:40:21 <clokep> Looks like it is part of the message themes.
22:40:32 * mpmc hates Metro, er.. sorry 'Modern UI'
22:40:59 <clokep> You do realize you can just use the desktop, right? That's what I do...
22:41:15 <EionRobb> there's an app called start8 that brings back the start menu :)
22:41:30 <mpmc> clokep: Yeah, I know, but I'd rather stick with 7 tbh.
22:41:46 <EionRobb> clokep: so checkNewText() in viewlog.xul would call one of those functions in the them(s)?
22:42:32 <clokep> mpmc: Have you tried Windows 8?
22:42:37 <clokep> EionRobb: Exactly.
22:42:39 <EionRobb> ok
22:42:53 <mpmc> clokep: Yeah, I really DO not like it.
22:43:13 <flo-retina> EionRobb: there's no checkNewText in viewlog.xul
22:43:26 <flo-retina> EionRobb: it's just that the profiler is confused about which window owns that function
22:43:36 <EionRobb> so viewlog.xul loads up the html of the theme?
22:43:42 <EionRobb> and it thinks that it's in there?
22:44:26 <flo-retina> things dealing with the HTML of the theme are in imThemes.jsm
22:44:56 <flo-retina> there are also lots of things in convbrowser.xml that deal with actually showing messages
22:45:06 <EionRobb> so would a lot of that theming stuff be faster if those functions were js moved intoc++ ?
22:47:23 <flo-retina> that would likely slow things down
22:47:36 <flo-retina> the JS <-> C++ boundary is quite expensive
22:47:37 * instantbot frowns at flo-retina
22:47:42 <EionRobb> ah ok
22:47:46 <flo-retina> and JS code is super fast (it's JIT compiled)
22:48:09 <EionRobb> so is that profile you linked before or after you removed the getComputedStyle?
22:48:16 <flo-retina> after
22:48:36 <flo-retina> (after commenting it out. I haven't found yet a clean solution to replace what it was used for :-/)
22:49:42 <EionRobb> so even after, its still an expensive function?
22:50:00 <-- mconley has quit (Input/output error)
22:52:02 <flo-retina> as I said, I think it's setting too many .style CSS properties (they all need to be parsed an applied...)
22:53:18 <EionRobb> ah right
22:53:43 <EionRobb> why do you replace the backgroundImage of the indicator div?
22:53:57 <flo-retina> to change its color
22:54:17 <EionRobb> I mean, what is the indicator div, and why does it have to be the backgroundImage that's changed?
22:56:28 <clokep> It could probably be an SVG filter or something, I think Mic played w/ that a bit.
22:56:51 <flo-retina> centering the arrow vertically is difficult :(
22:57:55 <clokep> flo-retina: Do you know what SDK is on thta machine?
22:58:15 <flo-retina> I think you can guess that from the environment variables at the top of the buildbot log
22:59:06 <flo-retina>   LIB=C:\Program Files\Microsoft Visual Studio 10.0\VC\LIB;C:\Program Files\Microsoft Visual Studio 10.0\VC\ATLMFC\LIB;C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib;
22:59:14 <clokep> 7.0A, it looks like.
22:59:22 <clokep> I'm using 7.1, I wonder if that's the difference...
22:59:39 <Mook_as> the .A ones means they came withe a MSVC, I think
22:59:58 <flo-retina> Mook_as: the build error is e:\bb-slave\win32\build\mozilla\content\media\ogg\nsOggReader.h(14) : fatal error C1083: Cannot open include file: 'vorbis/codec.h': No such file or directory
23:00:08 <clokep> Hmm...https://developer.mozilla.org/en-US/docs/Windows_SDK_versions says we shuld be all set.
23:00:11 <flo-retina> while building nsOggDecoder.obj
23:00:22 <clokep> (Assuming we have VS2010pro)
23:00:27 <Mook_as> that's... probably not part of msvc :p
23:00:37 * Mook_as goes looking for mozconfig
23:00:38 <flo-retina> Mook_as: that file is part of the repository: http://mxr.mozilla.org/comm-release/source/mozilla/media/libvorbis/include/vorbis/codec.h
23:01:33 <clokep> Mook_as: http://lxr.instantbird.org/instantbird/source/tools/buildbot-configs/win32/mozconfig
23:01:48 <Mook_as> try remove --disable-webm
23:01:50 <flo-retina> clokep: ac_add_options --disable-webm !
23:01:52 <Mook_as> yes, that's silly
23:02:15 <clokep> Bah. :(
23:02:18 <Mook_as> or rather, needing to enable webm to build is silly
23:02:31 <clokep> :) Yeah.
23:02:43 <flo-retina> I suspect we disabled it because we couldn't build it
23:02:54 <flo-retina> but maybe that was with the previous build slave? :-S
23:03:00 * clokep hopes so.
23:03:12 <flo-retina> clokep: are you also fixing the linux build? :)
23:03:43 <Mook_as> the corresponding komodo checkin's comment is "build webm now, since disabling it breaks the build"
23:04:14 <clokep> flo-retina: Was added in http://hg.instantbird.org/instantbird/rev/adfd9aa4e68b
23:04:50 <clokep> flo-retina: I haven't looked at that one, no.
23:04:53 <flo-retina> Mook_as: have you all filed a BMO bug?
23:05:09 <flo-retina> clokep: it's just trailing commas in a .h file that are fatal for us for some reason
23:05:20 <clokep> Ah, right.
23:05:29 <Mook_as> flo-retina: no, because they're all about changing build config to using only whatever firefox ships with, so I see no point
23:05:49 <flo-retina> "they"?
23:06:30 <Mook_as> upstream
23:08:24 --> jb has joined #instantbird
23:11:51 <flo-retina> "Good night" (I'll be back online briefly in ~ half an hour if there's something to check-in for tomorrow's nightly)
23:11:53 <-- flo-retina has quit (Quit: Instantbird 1.4a1pre -- http://www.instantbird.com)
23:13:59 <clokep> flo-retina: http://pastebin.instantbird.com/115289 and http://pastebin.instantbird.com/115290 ?
23:14:45 <-- jb has quit (Ping timeout)
23:39:45 * clokep wishes JS regexps had lookbehind...
23:43:08 --> jb has joined #instantbird
23:45:39 <-- jb has quit (Ping timeout)
23:46:20 --> DGMurdockIII has joined #instantbird
23:54:03 --> flo-retina has joined #instantbird
23:54:03 * ChanServ sets mode +qo flo-retina flo-retina