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 <email@example.com>, Patrick Cloke <firstname.lastname@example.org> 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 <email@example.com>, Patrick Cloke <firstname.lastname@example.org> 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