From: Bloodsong Termagant
okay, as everybody 'knows,' particles are rendered on a client and don't cause any server-side lag. (client-side lag is another story.) now, the other day, somebody told me that somebody told them something about sims having a particle limit. and i was thinking: how the heck can a sim have a particle limit? particles don't even EXIST in a sim. unless it is a particle emitter limit? would this be on top of the general script limit for a sim?
Sims do not have or enforce any kind of "particle limit". The *client* has a particle limit of 4096 (by default), but you'd be hard-pressed to get any client to render that many particles. Particles are a low priority in the rendering pipeline, and many times, will not generate near as many particles as the particle system requests. Even an emitter which generates 1 particle per second with a life of one second will occasionally fail to generate a particle at the appropriate time.
From: someone
meanwhile, since we all 'know' particles don't cause any server lag, how come we also 'know' that any time there's a class that has/teaches particle effects, that it's very likely everything will grind to a halt and the sim will crash when everyone activates all their particles?
I've never witnessed this (actually, the first time I have ever heard about it). Now, some *clients* may grind to a halt because of people running on really slow computers with outdated graphics, and a sudden load of particles turns their otherwise 2-5fps into a slide show, with time for a John Madden play-by-play analysis of each frame. Even if everyone (up to 100 people) turns on a particle emitter, that's only 100 prims that need to be updated. Definitely not a serious hurt on a sim's performance, unless it is already at the very edge of oblivion and any significant event would push it over.
From: someone
the reason i ask is, i want to hold a particle class. and i want to set it up so it is least likely to crash everything.
Way cool!

From: someone
i'm also curious about things that cause lag -- lag in general, and client lag as well. for example, one nci teacher explained that having other avatars in your view causes your client to have to process a lot of information -- all their positions, clothing, animations, attachments, flex prim hair, etc. and that staring at the floor or a blank wall makes the client run more smoothly.
Yep, for the most part, if you minimize the amount of stuff in view that the video card has to render, any lag caused by an underperforming video card will be minimized. Lag comes in many different forms, and affects each system and subsystem differently. Lots of geometry, prims, particles, textures, etc, generally chokes the video subsystem. Flexis, animations, etc take processing power, so if your CPU is a bit slow, it can seriously impact your performance, if it is computing new positions for everything. Flexi hair is especially awful, because it is usually comprised of 50-100+ separate flexi prims, and the computation cost for even just one head of that stuff makes baby CPU cry.
From: someone
bling: how can bling cause lag?
Poorly-designed bling can cause a minor amount of lag. Bling using "brute force" (ie, some particle system someone inexperienced with the art came up with, based on the premise "more is better", and having it generate thousands of particles for a tiny cosmetic effect), or rapid updates to llParticleSystem is especially odious. Generally, it is a client-lag issue, because bling is still a particle effect. The server doesn't even notice. The general complaint that I think most people have about bling is that it is distracting, though some people dress up their requests with a "lag" reason to make it more palatable to the bling wearer and to get his/her compliance to remove it without a hassle.
From: someone
AOs: somebody said it causes others to have to download custom animations.
Everyone within view of an avatar running a custom animation is forced to download said animation. That's not generally a huge problem, unless everyone present is all running new animations all the time. Generally, most folks don't use AOs, or use AOs with fairly common / popular animations (if Nancy is running slinky_walk, Betty coming into view running it as well won't require an additional download). Animations are fairly lightweight as well, so this doesn't tend to be a significant problem unless it gets excessive.
From: someone
flex prims: again, a client-side phenomenon only. while taking off your dress might give your neighbors higher frame rates, i don't see how this can cause actual lag.
As described above, causes client-side lag or performance issues.
From: someone
attachments: aside from having to load them when they first rez in view?
High-prim-count attachments add to the geometry load on the client, esp if they are made of complex shapes, like torii. In many cases, said attachments also contain scripts in every prim for color/texture changing, which is a serious source of server-side lag.
From: someone
scripted objects: now this i can believe, as the sim assigns timeslices to every active script -- whether it is actually currently DOing anything at the time or not.
Yes, this is one of the major contributors to sim lag and crashes. It's not usually obvious, because the worst offenders are prim avatar attachments (speaking as a Dragon who wears a full-prim avatar, I know this firsthand). The script time for avatar attachments doesn't show up in any of the estate tools, but its impact is felt as well as noted in the sim statistics (Ctrl-Shift-1, Sim). Every script allocates 16kb of memory (plus overhead), and is checked frequently for queued events ready to run.
From: someone
listeners: right, scripts that take up lots of timeslices parsing everything people say! (if they're channel 0 listeners). next to bling, listeners are on my list of things that must die.
Well, understand that listeners, by themselves, are not inherently evil. Scripts do their worst to lag when they are running doing something and, in the case of lots of channel 0 listen scripts, are frequently doing something if there is a lot of people present chatting. Otherwise, a channel 0 listen script is no more lag-inducing than a channel -1000000 listen script, if no one is chatting nearby. That said, it is obvious that channel 0 listeners, which have no real reason to listen to channel 0 chat, other than laziness on the part of the scripter, should be shot. AOs are notorious for this, and there is no reason for them to have to listen to channel 0. "/1ao off" really isn't that much more inconvenient than typing "/ao off", but there are a lot of common free AO scripts out there which still listen to channel 0 for commands.
From: someone
oh, one last thing... i have a diagnostic tool that shows sim time dilation and fps. usually the dilation is 98-100%. now somebody tell me i am misunderstanding script time dilation. to me, in the normal world, dilation means opening/expanding, and 100% dilation would be the GREATEST difference, and thus mean the scripts are lagging the sim time-frame as much as is possible. and 0% dilation would mean things are running smoothly and on time.
what does it really mean??
Time dilation isn't really just about scripts; it is everything about the sim, and it is simply defined as the ratio of simulator time passed to real time passed. Since the simulator cannot run faster than "real time", its value can never be greater than 1.0, but in the constant battle with the Lag Monster, "time" in the simulation will pass at a slower rate than real time. It's not really representative of that concept, though; it is more of a health indicator of the simulator process itself.
Lastly, here's some advice on what to ask attendees to do to help alleviate lag at your events, with some explanations:
1) Remove unnecessary attachments. Reduces simulator/script load, as well as geometry load for folks with lower-performing systems. People who wear non-human prim avatars might get a little upset (I don't even have a human av anymore), but just ask them to kindly pick the least primmy of all the avs they have that they would like to wear.
2) Turn off or remove AOs. Beyond lightening the script load, the added load of downloading and running everyone's changing animations is kept in check.
3) Turn off / remove bling. Not so much to reduce lag, but to reduce distractions.
4) (specifically for your class, but also helps in general for some slow client systems) Remove / turn off particle-emitting objects/attachments (including bling items). The less extraneous particle systems that are running, the better for your students to actually see what their creations look like.
5) Remove/de-rez flexi attachments/objects. ESPECIALLY flexi prim hair. Nothing attracts the lag monster like flexi prim hair.
6) For attendees who have lower-end systems, they can specifically turn off many rendering subsystems which cause lag. Generally, I recommend turning off particles (not relevant in your case.. attendees need to see their particles!), flexis, Bumpmapping, grass, trees, animated textures, clouds, etc. They can do this via the Client menu (type Ctrl-Alt-D to bring it up at the top of the screen if it isn't there), then the Rendering submenu. They can also go into their Preferences under the Graphics tabs and change things like View distance, mesh detail, turn off bump/shiny, etc. Whatever it takes to get a decent frame rate when in a large group of people.