User:Babbage Linden/Office Hours/2009 05 06

From Second Life Wiki
Jump to: navigation, search

Transcript of Babbage Linden's office hours:

 Topics
 * 1% of regions use 570MB of script memory or less: LINK
 * Region freeze when person enters and exit: LINK
 * Bytecode upload: LINK
 * Library and C#: LINK


[3:15] Babbage Linden: hi everyone

[3:15] Babbage Linden: sorry i'm late

[3:15] Uchi Desmoulins: Hello!

[3:15] Jibble Pizzaro: Hey!

[3:15] Nock Forager: Hello Babbage

[3:15] Opensource Obscure: before he runs away again

[3:15] Imaze Rhiano: hi

[3:16] Gunter Vandyke: Hi Babbage

[3:16] WolfPup Lowenhar: hey babage

[3:16] Babbage Linden: we started to get some analysis back on script usage

[3:16] Babbage Linden: just per region at the moment

[3:16] Babbage Linden: it's very interesting

[3:17] Babbage Linden: 99% of regions use 14MB of script memory or less

[3:17] Babbage Linden: 1% of regions use 570MB of script memory or less

[3:17] Babbage Linden: which is a huge jump

[3:17] Itagi Pattle: haha'

[3:17] Babbage Linden: so, all the problematic regions are in that 1%

[3:17] WolfPup Lowenhar: dang

[3:18] Babbage Linden: which is what we were expecting

[3:18] Babbage Linden: but good to see

[3:18] Simon Kline: wow

[3:18] Babbage Linden: full simulators get a rough memory budget of 800MB

[3:18] Uchi Desmoulins: What region's using 570mb of scripts?

[3:18] WolfPup Lowenhar: and it is the 1% that is causeing t problems for the other regions

[3:18] Babbage Linden: so regions using 570MB of scripts will cause swap

[3:19] Babbage Linden: yes

[3:19] Babbage Linden: in fact, it's less than 1%

[3:19] Babbage Linden: because at 99% the usage is 14MB

[3:19] Moy Loon: I'm sure it's really bad with the loads of voids, I see voids all the time with like, 2k-4k scripts, that can't be good =p

[3:19] Babbage Linden: we're going to break down that final 1% to see what the curve in there looks like

[3:20] Babbage Linden: but it looks like we'll be able to support 99.5%+ of regions just allocating 50MB for scripts on land

[3:20] WolfPup Lowenhar: kewl

[3:21] Babbage Linden: then we need to do the same job for parcels

[3:21] Jibble Pizzaro: watch out

[3:21] Jibble Pizzaro: omg

[3:21] Jibble Pizzaro: you're getting crunched

[3:21] WolfPup Lowenhar: is there a toll coming out soon for buildres to be able to know how much scritp memory the item use?

[3:21] Babbage Linden: as there will be some parcels within average regions that are using lots of script memory

[3:22] Babbage Linden: ultimately we'd like to find out how many parcels/regions/avatars would be affected by different script limits

[3:22] Babbage Linden: and trade that off against simulator swapping

[3:22] Babbage Linden: in many cases i think there will be a sweet spot where we can limit swapping without affecting many people

[3:23] Babbage Linden: but, our analysis continues

[3:23] Opensource Obscure: babbage, these are data from Agni right?

[3:23] Babbage Linden: yes

[3:23] Babbage Linden: our data collecting code when in to 1.25

[3:23] Babbage Linden: we're now analysing the results from that

[3:24] Babbage Linden: in terms of development we've mostly been working on http textures in brighton

[3:24] Babbage Linden: which is coming along nicely

[3:24] Uchi Desmoulins: :Q_

[3:25] Babbage Linden: and working on some integration test plumbing that we need for that project

[3:25] WolfPup Lowenhar: kewl that will mean less texture loadin lag i hope

[3:25] Babbage Linden: yes, it should make textures load twice as fast on average

[3:25] Uchi Desmoulins: and tiny sculptmap textures load crazy fast on average?

[3:25] Babbage Linden: it also potentially allows us to use content distribution networks for textures

[3:26] Babbage Linden: which could speed up texture loading a lot if we use them

[3:26] Babbage Linden: after that we're probably going to move on to splitting the database

[3:27] Babbage Linden: moving tables out of the main agni database and behind web services

[3:27] Babbage Linden: to allow second life to scale

[3:27] Babbage Linden: which is similar to our work on the region presence service

[3:27] Babbage Linden: which will replace the space server soon

[3:28] Babbage Linden: so, that's what we've been up to

[3:28] Babbage Linden: anything you'd like to talk about today?

[3:29] WolfPup Lowenhar: it will be interesting to see the script lod /parcel

[3:29] Nock Forager: indeed

[3:30] WolfPup Lowenhar: i wonder if those places that are high mem useage have a lot of bots on them

[3:30] Jibble Pizzaro: moy you griefer

[3:30] WolfPup Lowenhar: i know a bot would use a lot of meem

[3:30] Babbage Linden: we're thinking about going to visit the extreme high usage sims

[3:31] Babbage Linden: to see what people are doing with them

[3:31] Itagi Pattle: (With guns)

[3:31] Gunter Vandyke: L ㋡ L

[3:31] Babbage Linden: whether it's some amazing virtual eco system

[3:31] GutterBlood Spoonhammer: alpha switch on 250 prims

[3:31] Babbage Linden: or just accidental usage

[3:31] Jibble Pizzaro: Will secondlife ever offer higher performance sims, aimed at the militards 'n such

[3:31] Uchi Desmoulins: Shoulderpet Shopping Mall

[3:31] WolfPup Lowenhar: i bet some of them are 'adult entertainment' areas

[3:31] Babbage Linden: or the remnants of some griefer attack that hasn't been cleaned up

[3:31] Gunter Vandyke: i have seen sims with 80 bots hide in the sky to get more tarffic

[3:32] Moy Loon: Groups of people with like, 800 prims each including texture switchers, and resizers, Heh

[3:32] Babbage Linden: bots don't need to be scripted at all

[3:32] Babbage Linden: in order to get traffic you need accounts logged in

[3:32] Babbage Linden: those bots tend to be scripted on the client side

[3:32] Babbage Linden: and normally just programmed to reconnect if they get logged out

[3:32] Itagi Pattle: It's probably just Sine Wave and Bare Rose.

[3:33] WolfPup Lowenhar: i bet i know a couple of places that are high script load

[3:33] GutterBlood Spoonhammer: i would say most of the script usage in sl is due to attachments

[3:33] Nexii Malthus: No question about that definitely

[3:33] Gunter Vandyke: yes indeed, reziser scripts an 100 prim hair

[3:33] Babbage Linden: we're going to be analysing attachments soon

[3:33] GutterBlood Spoonhammer: awesome

[3:34] Babbage Linden: we have the numbers for the memory usage by attachments by region

[3:34] Babbage Linden: but we need to tie that up to how many agents were in the region at the time

[3:34] Babbage Linden: which unfortunately will have to come from elsewhere

[3:34] Babbage Linden: to find attachment script usage by avatar

[3:34] Uchi Desmoulins: Oh, you know how a sim will freeze whenever a person enters or exits it. Any idea how you might alleviate that problem?

[3:35] Uchi Desmoulins: It's totally due to the number of attachments a person is wearing

[3:35] WolfPup Lowenhar: one place i work they have it so that only a few peope(members of a particular group can runn scripts

[3:36] Uchi Desmoulins: temporarily freeze, that is

[3:36] Babbage Linden: uchi

[3:37] Babbage Linden: i've heard that bug has been recently introduced

[3:37] Xugu Madison does suspect there's some horrifically written attachments out there. Equally, some work on LSL functions so there isn't such a need for scripts in child prims of a set would be nice...

[3:37] Babbage Linden: there are a number of engineers looking in to it at the moment

[3:37] Uchi Desmoulins: It's always existed, I believe

[3:37] Uchi Desmoulins: Maybe it's just worse now?

[3:37] Moy Loon: There's one ontop of that uchi, With mono scripts

[3:37] Nexii Malthus: Yeah, it has always been there

[3:37] Babbage Linden: possibly, certainly we're getting more reports of it at the moment

[3:38] Moy Loon: Just a few mono scripts can sometimes make sims slow way down, but it's somewhat random, like the link-breaking, and a few other bugs

[3:38] Babbage Linden: mono scripts have to do more work when they cross regions

[3:38] Uchi Desmoulins: mm

[3:38] Babbage Linden: but it shouldn't be noticeable

[3:38] Babbage Linden: one thing to try is comparing region crossing times for new mono scripts

[3:38] Babbage Linden: leaving a region for the first time

[3:39] Babbage Linden: versus mono scripts that have already been in the destination sim

[3:39] Babbage Linden: we made some changes to bytecode verification recently

[3:39] Babbage Linden: which may slow down new scripts moving to a region

[3:39] Babbage Linden: that might explain the "random"ness too

[3:39] Babbage Linden: it might depend on whether a script has been in the target sim before

[3:39] Babbage Linden: as scripts only get verified once

[3:40] Babbage Linden: the first time they're rezzed in a region

[3:40] Moy Loon: Hmm, I guess that would explain why my teleports to and from sims I goto alot are about 1/10th of a second, vs about 1.5 seconds on sims I've never been too before

[3:40] Babbage Linden: if you have mono scripted attachments, that could explain it

[3:40] Moy Loon: Yeah, But only about four scripts total =p

[3:41] Moy Loon: Most of the time

[3:41] Moy Loon: I generaly use lsl on things, unless I need the math power of mono, or it's more lax memory contraints...

[3:41] WolfPup Lowenhar: it would be nice if there was a way to have script get verified grid wide but that would take a lot of code

[3:41] Babbage Linden: if you could spare some time to test the theory and add notes to the public jira i would be very grateful

[3:42] Babbage Linden: wolfpup, that's not as secure

[3:42] WolfPup Lowenhar: true

[3:42] Moy Loon: I dunno if that could happen wolf, Because mono isn't completly controlled, and people could upload mono bytecode to do nasty things

[3:42] Babbage Linden: as it allows an attack vector where someone could get a script marked verified in to the grid somehow

[3:42] Babbage Linden: at the moment verifying it every time before it's run is safer

[3:43] WolfPup Lowenhar: unless you have it so that only those mon scripts created inworld got grid wide verification

[3:43] Moy Loon: There's not really perfect ways of doing that

[3:43] WolfPup Lowenhar: and not ones that were loaded into the grid via bytecode

[3:43] Babbage Linden: we could potentially make it asynchronous

[3:44] Xugu Madison: I thought bytecodes were all created inworld at the moment?

[3:44] Babbage Linden: which would make region crossing quicker

[3:45] Nexii Malthus: Not sure, do you want to keep it so sims can only compile bytecode permamently or allow the client to compile as well in the future ?

[3:45] Babbage Linden: but slow down the start up of the script in the new region

[3:45] Babbage Linden: nexii, i would like to allow bytecode upload again

[3:46] Xugu Madison: Even then, verify on upload and all it done

[3:46] Xugu Madison: ?

[3:46] Babbage Linden: but we'll need the mono bytecode and metadata verifiers to be complete and bomb proof

[3:46] WolfPup Lowenhar: if you set it co that the client compiles the bytecode there are some people out there that would not be able to even use SL becuse there systmes would be to laged down with script compiling to function right

[3:46] Babbage Linden: once we allow bytecode upload again, we can let people compile in C# using VS.NET

[3:46] Xugu Madison: any estimated time on bytecode upload being ready, BTW?

[3:46] Babbage Linden: or any other language or IDE that compiles to a CLI assembly

[3:47] Nock Forager: offline scripting, yay.

[3:47] WolfPup Lowenhar: and there would be the potentual for people to write 'hacking' scritps that could harem peoples computers

[3:47] Babbage Linden: last time i asked miguel and rodrigo they said end of Q1

[3:47] Babbage Linden: but it wasn't done when i checked before going to lang.NET

[3:47] Babbage Linden: on the other hand, moonlight 2.0 has just been released in beta

[3:48] Uchi Desmoulins: What's that??

[3:48] Babbage Linden: which must include those features

[3:48] Babbage Linden: so i'll check again

[3:48] Uchi Desmoulins googles it.

[3:48] Babbage Linden: moonlight is an open source implementation of silverlight, which is microsoft flash

[3:48] Xugu Madison: I will send you cookies when it's done, Babbage :)

[3:48] Babbage Linden: it runs CLI code in the browser, downloaded from the internet

[3:49] Babbage Linden: so needs to have a secure sandbox for running untrusted code

[3:49] Babbage Linden: moonlight 2.0 has been driving a lot of the mono sandbox and verification work

[3:49] Babbage Linden: previously it was just second life that wanted it

[3:50] WolfPup Lowenhar: < needs to find a way to sandbox mono offline that works similar to inworld

[3:50] Babbage Linden: the development is progressing much faster now that there is another application for the sandboxing

[3:51] Babbage Linden: wolfpup, one thing I'd really like to see is a VS.NET test harness for SL scripts

[3:51] WolfPup Lowenhar: that would defanly be nice

[3:51] Babbage Linden: which will simulate the SL environment and allow testing of scripts by specifying events to it

[3:52] WolfPup Lowenhar: kewl

[3:52] WolfPup Lowenhar: that would be similar to the LSLEditor that i use now

[3:52] Babbage Linden: and providing test doubles for the library calls

[3:53] Babbage Linden: it would be fairly easy to build

[3:53] Xugu Madison: Any chance of early library docs so we know what we'll be working with and can provide feedback, while we wait on Mono?

[3:53] WolfPup Lowenhar: and mabey even have ti tell you how much memory a script is useing

[3:53] Babbage Linden: we're having a meeting about releasing the C# api on friday

[3:54] Babbage Linden: so I should have some news about that next week

[3:54] Xugu Madison: Excellent, thanks!

[3:54] WolfPup Lowenhar: the c#api will that be something that people can get ?

[3:54] WolfPup Lowenhar: or will it be server side

[3:54] Babbage Linden: well we implement it on the server side

[3:55] Babbage Linden: but, once we release the api

[3:55] Babbage Linden: you could build a test implementation in VS.NET

[3:56] Babbage Linden: using tools similar to mockito

[3:56] Babbage Linden: to record and verify parameters to library calls

[3:56] Babbage Linden: or specify results to be returned by library calls

[3:57] Babbage Linden: or events to inject in to scripts

[3:57] Babbage Linden: ok, i need to go in a couple of minutes

[3:57] Babbage Linden: any last questions?

[3:58] Moy Loon: Nothing that I can think of at the moment..

[3:58] Xugu Madison: I'd run in the silence if I was you :)

[3:58] Babbage Linden: ok, deal!

[3:58] Uchi Desmoulins: No wait!

[3:58] Babbage Linden: heh

[3:58] Uchi Desmoulins thinks of something.

[3:58] WolfPup Lowenhar: lol xugu

[3:58] Babbage Linden: 5

[3:58] Babbage Linden: 4

[3:58] Babbage Linden: 3

[3:58] Uchi Desmoulins: Any

[3:58] Babbage Linden: 2

[3:58] Uchi Desmoulins: Hey

[3:58] Nock Forager: lol

[3:58] WolfPup Lowenhar: tc babbage

[3:58] Uchi Desmoulins: Stop it!

[3:58] Xah Toll: thanks Babbage. <off>

[3:58] Moy Loon force hugs you.

[3:58] Xugu Madison: Thanks Babbage!

[3:59] Nexii Malthus: okay, thanks babbage

[3:59] Babbage Linden: thanks for coming

[3:59] Moy Loon: Take care =p

[3:59] Babbage Linden: see you all next week

[3:59] Gunter Vandyke: thanks

[3:59] Nexii Malthus: also people check out my latest scripts released on forums, http://forums.secondlife.com/showthread.php?t=319577

[3:59] Uchi Desmoulins: Okay... Toodles :)

[4:00] Moy Loon: lolol