-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance Issues #34
Comments
Can you share your computer specs (CPU, memory, OS, etc)? I suspect it might be related to the new performance feature capturing every minimongo call or the new Chrome's API. Please share all information you can so it helps with the investigation. Thanks 😉 |
Thank you for you work. I have the same issue on my MacBook Pro (16-inch, 2019):
|
I use it on an IMAC Pro 2017
|
Same here on a Mac M1 Max with 32gb. The admin console of our app is does not finish loading anymore. I agree, there are way too much subscribes on this page but still ;-) |
@HoptimizeME I am sad to hear these reports, I am investigating. Thanks for the feedback. |
Thanks a lot Leonardo! It's greatly appreciated. We've just discovered it and we're impressed by how much it's going to help us! Thanks again! |
Glad to hear that @HoptimizeME. I suspect it is some edge case specific to your applications, will need your help solving this. @mitsol @plb666 Do you guys get any unusual amount of calls (or increased processing time) in the @HoptimizeME Do you get any errors in the console? You can also go to the |
In our case, the methods and subscriptions can return fairly large JSONs. I noticed that when the page is loaded, the DDP TAB finishes displaying the information very late, in my case it takes more than a minute with this data: From a quick performance analysis, it seems that all the time is used by the processTraces function. |
Wait, Are you guys using this one? |
Hi, Chrome says it's using this one yes. When clicking the link, the button says "Remove from Chrome" but it also says : So it seems it's made by you. Is it confusing both because of the name or an ID ? Regards, Burni |
@plb666 What about you? Can you confirm that? @HoptimizeME Nah I was just confused since @plb666 mentioned a function not present in my codebase. If you guys want to pick a time in my Calendly so we can repro together, that would be helpful. 😉 |
@leonardoventurini I reinstalled the extension, now I have the 1.5 version of Meteor Devtools Evolved The performance TAB is always empty and app performance is very slow. Minimongo: Subscriptions: DDP: The chrome instance uses 222% of the cpu:Processing of DDP messages seems very slow, as does adding records to Minimongo. Whereas the profiler seems to report nothing interesting. |
Got the MacBook Pro 2020 Just wanted to add, that i got the same performance problems. Got even a total stuck when this extensions is activated. Tested it in Chrome version 104.0.5112.101 and Firefox 103.0.2 (64-Bit) . Everytime same result. If my subscriptions are small everything works fine, but it seem at a specific threshold the perfomance go south. Couldn't find this threshold so far. |
I am having a similar issue in my application. I am sending a few hundred records through a subscription. Each record is approximately 15 to 20 kb. When meteor devtools are enabled, the ddp is super slow to report, and the render performance in my app tanks. Disabling the dev tools totally fixes it. Additionally, I am using the added and changed functions rather than returning cursors from my publish function. Edit: My system is windows with a 12th gen i7 and 16gb of RAM. Most recent version of chrome. |
@dallman2 Can you share an anonymized version of the publication's code so we can repro? And the Meteor version too. Thanks! |
@leonardoventurini , I do not think I will be able to produce an anonymous version of the publish function, there is a lot of code that backs it up. I can give you a pseudocode version, though. Also we are on meteor Meteor.publish('mypublish', function(queryInfo){
if (this.userId) {
const publisher = new PublicationHelper(this, queryInfo);
publisher.doQuery();
this.onStop(() => {
// this calls `stop` on our live query handles
publisher.destruct();
});
}
this.ready();
}) Here is a basic look at what happens in function doQuery(){
// do the query
console.time('doquery');
const cursors: Mongo.Cursor<Document, Document>[] = executeQuery();
console.timeEnd('doquery');
// about 0.2ms
// set up query observers
console.time('cursormap');
cursors.forEach(singleCursorSetup);
console.timeEnd('cursormap');
// about 5s
} You see some mapping going on here, but really, the list of cursors returned from the const obs = cursor.observeChanges({
added(id: string, doc: Document) {
addedHandler(target, id, doc);
},
changed(id: string, fields: Document) {
changedHandler(target, id, fields);
},
removed(id: string) {
removedHandler(target, id);
},
}); The EditI just remembered that my application is using a non-default mongo driver. That is, the collections that I'm trying to pull from reside in a different meteor project. Thought that might be good intel to have... |
Hi, I also have the same performance problem, high RAM / CPU / power consumption. |
Hi! Recently i recognized that my Meteor projects got very slow using chrome (in development). At first I thought it was caused by a Meteor update, however when i tried to start chrome without extensions all went back to rocket speed! Disabling one extension after the other revealed that the meteor-devtools were the reason for this. Any suggestions how to avoid this? All in all i really like meteor-devtools 👍
The text was updated successfully, but these errors were encountered: