*** th1a has quit IRC | 02:06 | |
*** menesis has quit IRC | 06:03 | |
*** th1a has joined #schooltool | 11:44 | |
*** yvl has joined #schooltool | 14:05 | |
yvl | hey th1a | 14:07 |
---|---|---|
yvl | short good news | 14:07 |
yvl | we'll have significant improvements in speed for big instances like ACC | 14:08 |
th1a | W00t! | 14:11 |
th1a | What'd you do? | 14:11 |
yvl | unspeakable things :D | 14:12 |
yvl | optimizations in schooltool.relationship | 14:12 |
th1a | I hope nothing Lovecraftian. | 14:12 |
th1a | Have you read The Laundry Files yet, btw? | 14:12 |
yvl | not yet :| | 14:12 |
yvl | still on to read list | 14:13 |
yvl | hard to believe a year passed already | 14:13 |
th1a | Well... let's just say I hope you don't disappear into the laundry as a result of these optimizations. | 14:13 |
th1a | The Laundry. | 14:13 |
th1a | Anyhow, what kind of optimizations? | 14:14 |
yvl | let's see | 14:14 |
yvl | basically, touching less objects than before | 14:14 |
yvl | touching meant rebuilding them in memory, and even with hot caches it may be slow | 14:15 |
yvl | also fixed some very embarrassing stuff | 14:15 |
th1a | Hm... | 14:15 |
yvl | like checking if person is in students group were rebuilding all 10000 objects in memory | 14:15 |
yvl | to check usernames | 14:15 |
th1a | I'm glad there were embarrassing things in there. | 14:16 |
th1a | I was HOPING we were doing some stupid things. | 14:16 |
yvl | then there were real optimizations | 14:16 |
yvl | like being very, very careful not to trigger persistent objects to unghostify themselves | 14:16 |
yvl | also making fake keyreferences so we could obtain object int ids from relationships without actually loading them | 14:17 |
th1a | OK. | 14:18 |
yvl | it's amazing what you can do when you're willing to look at _p_oid and _p_jar :) | 14:18 |
yvl | there are two more things I'd like to work on next | 14:18 |
yvl | one is to make temporal relationships faster | 14:19 |
th1a | In other words, if you actually understand how ZODB works somewhat. | 14:19 |
yvl | true | 14:19 |
yvl | it's somewhat low level | 14:19 |
yvl | another is memory usage | 14:19 |
th1a | OK. Cool. I'm happy. | 14:19 |
th1a | Keep going. | 14:20 |
yvl | I'm not sure how much memory I can save, and if it is significant | 14:20 |
th1a | How much faster are we talking about at this point, *roughly*. | 14:20 |
yvl | x2 - x10 | 14:20 |
yvl | cold caches are much faster, but still sluggish | 14:20 |
yvl | so if you want to look at School tab just after running ST it will take | 14:21 |
yvl | some 10 secs on my machine | 14:21 |
yvl | instead of 60 | 14:21 |
yvl | next loads will fall to 4-5 secs | 14:21 |
th1a | Eek. OK, well, that's better! | 14:21 |
yvl | skill gradebooks feel to load with little lag | 14:22 |
yvl | kind of exciting! :) | 14:22 |
th1a | Perhaps things were getting worse in CanDo than I realized. | 14:23 |
yvl | well | 14:24 |
yvl | as long as we fix that... ;) | 14:24 |
yvl | so here's the thing - not everything will become faster | 14:25 |
yvl | we'll need to catch some abusive code along the road | 14:25 |
yvl | there was this one line | 14:25 |
yvl | bool(list(context.members)) | 14:25 |
yvl | means - load all the members, put them in a humongous list and then | 14:26 |
yvl | see if the list is empty | 14:26 |
th1a | Yes. | 14:26 |
yvl | ok, so that's the short news | 14:27 |
yvl | more details on Monday | 14:27 |
yvl | (and a runnable branch) | 14:27 |
th1a | Cool. Excellent, yvl! | 14:27 |
yvl | thanks :) | 14:30 |
*** menesis has joined #schooltool | 14:44 | |
*** basic` has quit IRC | 15:29 | |
*** basic` has joined #schooltool | 15:34 | |
*** basic` has joined #schooltool | 15:35 | |
*** yvl has quit IRC | 15:54 | |
*** replaceafill has joined #schooltool | 16:01 | |
* replaceafill just realized bound properties have a nonzero method! :'( | 16:04 | |
th1a | ? | 16:04 |
replaceafill | just read your conversation with yvl this morning | 16:05 |
th1a | Yes, good news! | 16:05 |
replaceafill | the part on abusive code :( | 16:05 |
replaceafill | i'm responsible for some of it | 16:05 |
replaceafill | bool(list(relationship)) | 16:05 |
replaceafill | for some reason i picked that up a long time ago | 16:05 |
replaceafill | and i just check the property class and it has a nonzero method | 16:06 |
replaceafill | the shame.... | 16:06 |
th1a | Ah. | 16:06 |
th1a | It is ok... | 16:06 |
replaceafill | :) | 16:06 |
th1a | SchoolTool was always very zealous about not-prematurely optimizing. | 16:06 |
th1a | Eventually, the time to optimize arrives! | 16:07 |
replaceafill | yay! | 16:07 |
replaceafill | a user from Chile just made me mad... | 16:07 |
replaceafill | i accept ST is incomplete (to his eyes) | 16:07 |
replaceafill | but calling us "proprietary"! | 16:07 |
replaceafill | that i can't accept! | 16:08 |
th1a | In what sense? | 16:08 |
th1a | Because we don't use SQL? | 16:08 |
replaceafill | no, because *they* (his company) can't modify the code... | 16:08 |
replaceafill | can't as in don't know how to | 16:08 |
th1a | Well, I tend to be apologetic about that. | 16:09 |
th1a | It is our great failing, but hardly on purpose. | 16:09 |
th1a | Mark liked Zope 3 and it seemed like a good idea to me... | 16:10 |
replaceafill | i've always wonder how the launchpad people feel | 16:11 |
replaceafill | i guess they used zope because the same reason | 16:11 |
th1a | Yeah, it was getting pretty modified for LP. I wonder how much Zope 3 is still there at this point. | 16:20 |
th1a | replaceafill: Is there something in particular the people in Chile want to do? | 16:54 |
replaceafill | it's about a custom scoresystem for their final grade | 16:55 |
replaceafill | they grade from 0-7 | 16:55 |
th1a | OK... | 16:55 |
th1a | And? | 16:55 |
replaceafill | a couple of user have had trouble setting it up | 16:55 |
replaceafill | i explained them how, but not with a very precise example | 16:55 |
replaceafill | just to give them the idea | 16:56 |
replaceafill | one of them asked if it was possible to include a *full* scoresystem for them in the standard version | 16:56 |
replaceafill | this was my example: | 16:57 |
replaceafill | http://imageshack.us/scaled/landing/832/pantallazodel2012120509.png | 16:57 |
th1a | Speaking of which... how is the report plugin working? | 16:57 |
replaceafill | th1a, good | 16:58 |
replaceafill | i'll have a decent pdf to show you on monday | 16:58 |
th1a | Essentially, we have a similar situation in Australia. | 16:58 |
th1a | With demographics. | 16:58 |
replaceafill | couldn't fight the two column layout though :( | 16:58 |
th1a | That's fine. | 16:58 |
replaceafill | i'll ask yvl on monday about ideas on how to do it | 16:59 |
replaceafill | ah yes, demographics | 16:59 |
replaceafill | sounds like something people will want to do | 16:59 |
th1a | We might want to just throw in simple import/exports just for those. | 16:59 |
th1a | Whether separate or part of the spreadsheet. | 16:59 |
th1a | score systems and demographic schema. | 17:00 |
replaceafill | ah | 17:00 |
th1a | I guess spreadsheet would be best. | 17:00 |
*** menesis has quit IRC | 20:47 | |
*** replaceafill has quit IRC | 22:20 | |
*** replaceafill has joined #schooltool | 22:21 | |
*** khildin has joined #schooltool | 22:47 | |
*** th1a has quit IRC | 22:48 | |
*** replaceafill has quit IRC | 23:25 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!