Bug 123995

Summary: [CSS Grid Layout] Cache several vectors to avoid malloc/free churn
Product: WebKit Reporter: Sergio Villar Senin <svillar>
Component: CSSAssignee: Sergio Villar Senin <svillar>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, dino, esprehn+autocc, glenn, kling, koivisto, kondapallykalyan, svillar
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 124408    
Bug Blocks: 123989, 123994    
Attachments:
Description Flags
Patch dino: review+

Sergio Villar Senin
Reported 2013-11-07 08:10:46 PST
We should probably merge: Cache several vectors to avoid malloc/free churn distributeSpaceToTracks and resolveContentBasedTrackSizingFunctionsForItems are both called in a loop during layout and resulted in a lot of mallocs / frees calls. This change just keeps their Vectors around until the end of Layout, keeping the memory around. This is a classic runtime vs memory trade-off as we will hold onto the biggest allocation until the end of layout, which should be fine as we *have* to allocate that amount. This code refactors the often passed-in arguments & the cached Vectors into a new data structure GridSizingData. This makes the code cleaner while making it difficult to forget free'ing the memory at the end of layout. This is a 40% improvement on auto-grid-lots-of-data.html. BUG=273238 Review URL: https://chromiumcodereview.appspot.com/24331003
Attachments
Patch (21.09 KB, patch)
2013-11-22 03:19 PST, Sergio Villar Senin
dino: review+
Sergio Villar Senin
Comment 1 2013-11-18 08:42:59 PST
I have a patch ready for this, but I won't upload it as it depends in another two patches already pending on review.
Sergio Villar Senin
Comment 2 2013-11-22 03:19:40 PST
Dean Jackson
Comment 3 2013-11-22 10:46:56 PST
Comment on attachment 217664 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=217664&action=review > Source/WebCore/ChangeLog:10 > + Layouting the grid items means a lot of calls to Laying-out
Sergio Villar Senin
Comment 4 2013-11-25 00:19:45 PST
Note You need to log in before you can comment on or make changes to this bug.