4 ms·
Thanks for letting us know. That sounds like an exceptional case from our metrics. Would you be willing to share your Asana user ID so we could learn more?
by pspeter3 9y ago
Thanks for letting us know. That sounds like an exceptional case from our metrics. Would you be willing to share your Asana user ID so we could learn more?
- kevan 9y agoOut of curiosity, are you watching percentiles or averages in your metrics?
- pspeter3 9y agoWe used to track percentiles but discovered Asanas struggled to empathize with them. We switched to defining semantic performance bands (eg < 100ms, < 300ms, < 1s, < 3s, < 5s, < 10s). For each action, we track the percentage per band. Asanas seemed to empathize better with time as the independent variable and percentage as the dependent variable.
- f1notformula1 9y agoCan you elaborate on what an Asana is and what "empathize" means? I'm not an Asana user, so perhaps I'm unfamiliar with the jargon.
- btilly 9y agoI would also suggest that you do the same with a metric for "slowest action in 15 minute period of user input". 99% of actions are fast but you have hundreds of actions over 15 minutes, people will notice those slow ones.
- pspeter3 9y agoThanks for the advice! We believe that users remember the slowest actions as well. Your strategy sounds like it will help identify the long tail of rare yet slow actions.
- btilly 9y agoHere is another tip to track down that long tail. "Tracer bullets". Have a flag that can be put on an action that causes it to be logged very verbosely. In a way that travels through your system. And then aggregate those logs, process them, and make them available. Then randomly tag a small fraction of actions with that flag. Like 0.1%. Because you do this relatively rarely, you can make verbose logs without overwhelming your system. When you receive a complaint about foo occasionally being slow your first stop is to see if you've got a concrete action that was slow, look at the picture from the logs, and try to figure out why. This will greatly help in reproducing rare problems or, if you can't, at least identifying where they come from deep in your system.
- twobyfour 9y agoYes, but not publicly.
- riquito 9y agoIt looks like a standard dark pattern in React, you are re-rendering more components than needed on certain inputs changes, you should ask him in which input he's typing, it would probably more useful than his user name
- pspeter3 9y agoThanks for the advice. Do you agree a potential optimization would be using React component state instead of store state?
- mikewhy 9y agoYou should use React.PureComponent whenever possible. And stateless functions always re-render. There's no chance of using "shouldComponentUpdate". Using store state vs local state shouldn't matter much, as long as your components are pure and only pull what they need from the store.
- azinman2 9y agoNot trying to start a flame war, but do you know for sure “he” is a “he”?
- twobyfour 9y agoYou're right, it's not really germane to the primary topic of conversation in this thread, but thank you for noticing and pointing it out anyway. Fwiw, I'm a "she".
- azinman2 9y agoWhy am I being down voted? If anything, my suspicion it was an assumption was validated, and 'women in tech' is topic-du-jour.
- blub 9y agoAnti-pattern. Dark patterns are tricks used to manipulate users.
- twobyfour 9y agoIt doesn't happen all the time - seems to be intermittent, but when it's happening, it'll go on for several minutes at a time. When it does happen, the activity monitor shows the browser process using basically the entire CPU. Sometimes but not always, reloading the page fixes the problem; it does seem to be more likely to happen when the page has been open for an extended period, but sometimes the problem persists after a fresh page load. (There's one project that I use to organize most of my work, and I'm liable to leave that tab open to that project without reloading or even changing the sort/filter for weeks on end.)
- pspeter3 9y agoThanks for the detail! Your description makes me wonder if there is a lurking memory leak.
- twobyfour 9y agoMemory usage seems pretty stable, but I'll make a note to check that next time the issue occurs.
- twobyfour 9y agoWhat seems to happen is that memory usage spikes (by as much as 100 MB) alongside CPU usage while the typing lag is occurring, and then it drops back to baseline as soon as the text is displayed properly.
- CodeWriter23 9y agoYou can't use your metrics to discern their Asana ID? Or just any customer having severe performance issues? Hmmm...