RESOLVED FIXED 79903
WTF: Micro-optimize cleanup of empty vectors and hash tables
https://bugs.webkit.org/show_bug.cgi?id=79903
Summary WTF: Micro-optimize cleanup of empty vectors and hash tables
Andy Wingo
Reported 2012-02-29 06:59:06 PST
The patch to be attached has the following changelog: This patch speeds up cleanup of vectors and hash tables whose backing store was never allocated. This is the case by default for most vectors / hash tables that never had any entries added. The result for me is that calling checkSyntax 1000 times on concat-jquery-mootools-prototype.js goes from 6.234s to 6.068s, a 2.4% speedup. * wtf/HashTable.h: (WTF::HashTable::~HashTable): (WTF::::clear): Don't deallocate the storage or frob member variables if there is no backing storage. * wtf/Vector.h: (WTF::VectorBufferBase::deallocateBuffer): Likewise.
Attachments
Patch (3.32 KB, patch)
2012-02-29 07:00 PST, Andy Wingo
no flags
Patch for landing (2.80 KB, patch)
2012-02-29 11:45 PST, Andy Wingo
no flags
Andy Wingo
Comment 1 2012-02-29 07:00:27 PST
Andy Wingo
Comment 2 2012-02-29 09:30:13 PST
Comment on attachment 129436 [details] Patch Thanks for the review!
Geoffrey Garen
Comment 3 2012-02-29 10:18:47 PST
Comment on attachment 129436 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=129436&action=review > Source/JavaScriptCore/wtf/HashTable.h:983 > + if (m_table) { WebKit style is to use early return here: if (!m_table) return; This reduces overall indentation. > Source/JavaScriptCore/wtf/Vector.h:284 > + if (bufferToDeallocate) { WebKit style is to use early return here: if (!bufferToDeallocate) return; This reduces overall indentation.
Andy Wingo
Comment 4 2012-02-29 11:41:28 PST
Comment on attachment 129436 [details] Patch clearing cq+ in anticipation of landing a patch with ggaren's feedback incorporated
Andy Wingo
Comment 5 2012-02-29 11:45:18 PST
Created attachment 129484 [details] Patch for landing
WebKit Review Bot
Comment 6 2012-02-29 17:09:44 PST
Comment on attachment 129484 [details] Patch for landing Rejecting attachment 129484 [details] from commit-queue. New failing tests: fast/js/kde/RegExp.html Full output: http://queues.webkit.org/results/11770092
Andy Wingo
Comment 7 2012-03-05 02:37:29 PST
Comment on attachment 129484 [details] Patch for landing Flipping cq+ again; I think that the previous run was when the queues were flaky. Will look into this if it does a cq- again.
WebKit Review Bot
Comment 8 2012-03-05 03:56:30 PST
Comment on attachment 129484 [details] Patch for landing Clearing flags on attachment: 129484 Committed r109731: <http://trac.webkit.org/changeset/109731>
WebKit Review Bot
Comment 9 2012-03-05 03:56:37 PST
All reviewed patches have been landed. Closing bug.
Darin Adler
Comment 10 2014-04-24 16:45:29 PDT
Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.
Note You need to log in before you can comment on or make changes to this bug.