ძიება მხარდაჭერაში

ნუ გაებმებით თაღლითების მახეში მხარდაჭერის საიტზე. აქ არასდროს მოგთხოვენ სატელეფონო ნომერზე დარეკვას, შეტყობინების გამოგზავნას ან პირადი მონაცემების გაზიარებას. გთხოვთ, გვაცნობოთ რამე საეჭვოს შემჩნევისას „დარღვევაზე მოხსენების“ მეშვეობით.

ვრცლად

Firefox consumes CPU when accessing tags

  • 6 პასუხი
  • 13 მომხმარებელი წააწყდა მსგავს სიძნელეს
  • 10 ნახვა
  • ბოლოს გამოეხმაურა seiryu

Accessing bookmark tags in FF 3.6.11 consumes the CPU 100% for 30+ seconds before browser responds. For example I have a saved search of everything with the tag 'tiddly' and when I access the search I have a significant delay (30+seconds) before the small list displays. Modifying a tag on a bookmark takes a similar lengthy time. This behavior is new with 3.6.11. I can revert back to 3.6.10 and things are OK.

Accessing bookmark tags in FF 3.6.11 consumes the CPU 100% for 30+ seconds before browser responds. For example I have a saved search of everything with the tag 'tiddly' and when I access the search I have a significant delay (30+seconds) before the small list displays. Modifying a tag on a bookmark takes a similar lengthy time. This behavior is new with 3.6.11. I can revert back to 3.6.10 and things are OK.

ყველა პასუხი (6)

I've confirmed that this problem persists with all plugins removed. I am a heavy user of tags and this problem makes FF unusable for me.

Tried 3.6.12 with the same results. Stuck at 3.6.10 until this is resolved. Or I guess I'll go look at Chrome...

ps. I ended up posting this twice because I can't seem to locate it from a search. It doesn't show up in a search for 'cpu' or 'tags'.

This can be a problem with the file places.sqlite that stores the bookmarks and the history.

Do you have a large amount of bookmarks?

sqlite> select count() from moz_bookmarks;
9933

The DB file is 24M.

Performance is fine with 3.6.10 so something has changed with how the tags are being accessed in 3.6.11.

I'm going to try running some cleanup on the db to see if that helps anything.

ჩასწორების თარიღი: , ავტორი: seiryu

Deleted places.sqlite. It was rebuilt on restart to be only 1.8M, partially I suspect because the favicon data was gone for all the sites. In any event the behavior persisted in 3.6.12 - access to a saved search based on a tag pegged the FF process at 100% for about 20 seconds.

In 3.6.10 I notice there is a slight delay, sub-second, when I click on the saved search and later clicks respond immediately.

Something has changed in how tags are being access in the DB from 3.6.10 to 3.6.11.

The problem persists with 3.16.13.  :(

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libsqlite3.dylib              	0x01177433 sqlite3_clear_bindings + 3571
1   libsqlite3.dylib              	0x011b3c28 sqlite3_blob_open + 30584
2   libsqlite3.dylib              	0x011a2230 sqlite3_step + 112
3   XUL                           	0x009a5960 JSD_GetValueForObject + 332144
4   XUL                           	0x009c3b43 JSD_GetValueForObject + 455507
5   XUL                           	0x009cc57e JSD_GetValueForObject + 490894
6   XUL                           	0x009e6ffc JSD_GetValueForObject + 600076
7   XUL                           	0x009e84c2 JSD_GetValueForObject + 605394
8   XUL                           	0x009eb608 JSD_GetValueForObject + 618008
9   XUL                           	0x00b12058 NS_InvokeByIndex_P + 88
10  XUL                           	0x00053f6e DumpJSStack + 177550
11  XUL                           	0x000588cc DumpJSStack + 196332
12  libmozjs.dylib                	0x0100bef8 js_Invoke + 1128
13  libmozjs.dylib                	0x0100c91e js_Invoke + 3726
14  libmozjs.dylib                	0x0100cbb0 js_Invoke + 4384
15  libmozjs.dylib                	0x010196b7 js_GetterOnlyPropertyStub + 11095
16  libmozjs.dylib                	0x010200b0 js_LookupProperty + 17120
17  libmozjs.dylib                	0x00ffc074 JS_HashTableRawRemove + 3156
18  libmozjs.dylib                	0x0100c060 js_Invoke + 1488
19  libmozjs.dylib                	0x0100c91e js_Invoke + 3726
20  libmozjs.dylib                	0x00faff6e JS_CallFunctionValue + 62
21  XUL                           	0x005b3fb1 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 3941553
22  XUL                           	0x005f78a8 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 4218280
23  XUL                           	0x0057f0e2 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 3724770
24  XUL                           	0x0057c119 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 3712537
25  XUL                           	0x0047268d void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 2624397
26  XUL                           	0x00472c9d void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 2625949
27  XUL                           	0x0048d7d4 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 2735316
28  XUL                           	0x0048e1aa void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 2737834
29  XUL                           	0x0048ec9d void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 2740637
30  XUL                           	0x003cbf7e void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 1942654
31  XUL                           	0x003cc261 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 1943393
32  XUL                           	0x00b024a7 NS_GetComponentRegistrar_P + 36279
33  XUL                           	0x00ac22b7 JNIEnv_::CallStaticObjectMethod(_jclass*, _jmethodID*, ...) + 278695
34  XUL                           	0x00a64322 JSD_GetValueForObject + 1112882
35  XUL                           	0x00a2cc3e JSD_GetValueForObject + 885838
36  com.apple.CoreFoundation      	0x90ebc4cb __CFRunLoopDoSources0 + 1563
37  com.apple.CoreFoundation      	0x90eb9f8f __CFRunLoopRun + 1071
38  com.apple.CoreFoundation      	0x90eb9464 CFRunLoopRunSpecific + 452
39  com.apple.CoreFoundation      	0x90eb9291 CFRunLoopRunInMode + 97
40  com.apple.HIToolbox           	0x991f0f9c RunCurrentEventLoopInMode + 392
41  com.apple.HIToolbox           	0x991f0c8d ReceiveNextEventCommon + 158
42  com.apple.HIToolbox           	0x991f0bd6 BlockUntilNextEventMatchingListInMode + 81
43  com.apple.AppKit              	0x9718678d _DPSNextEvent + 847
44  com.apple.AppKit              	0x97185fce -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
45  com.apple.AppKit              	0x97148247 -[NSApplication run] + 821
46  XUL                           	0x00a2c7da JSD_GetValueForObject + 884714
47  XUL                           	0x008b2697 void std::__adjust_heap<__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)>(__gnu_cxx::__normal_iterator<nsRefPtr<imgCacheEntry>*, std::vector<nsRefPtr<imgCacheEntry>, std::allocator<nsRefPtr<imgCacheEntry> > > >, int, int, nsRefPtr<imgCacheEntry>, bool (*)(nsRefPtr<imgCacheEntry> const&, nsRefPtr<imgCacheEntry> const&)) + 7080855
48  XUL                           	0x0001104b XRE_main + 15723
49  org.mozilla.firefox           	0x00002cb8 start + 2168
50  org.mozilla.firefox           	0x00002542 start + 258
51  org.mozilla.firefox           	0x00002469 start + 41</pre>

ჩასწორების თარიღი: , ავტორი: seiryu

I think this might be related to this bug:

https://bugzilla.mozilla.org/show_bug.cgi?id=595530

Looks like a regression in sqlite3 performance.