Page MenuHomePhabricator
Paste P17440

Parsoid stdClass shapes at top level finalizeDOM()
ActivePublic

Authored by tstarling on Fri, Oct 8, 12:37 AM.
(mw)www-data@tinyman:/srv/php/pecl/php-meminfo/analyzer$ php -d memory_limit=6G bin/analyzer stdclass-shapes /data/mw/log/meminfo.json
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------------------+
| Members | Instances Count | Cumulated Self Size (bytes) |
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------------------+
| parsoid | 250282 | 18020304 |
| tmp | 97336 | 7008192 |
| inTransclusion,tagId | 82087 | 5910264 |
| tsr,tmp | 65710 | 4731120 |
| inTransclusion | 63361 | 4561992 |
| | 40241 | 2897352 |
| noAttrs,tagId | 32760 | 2358720 |
| tagId | 30035 | 2162520 |
| stx,tmp | 25728 | 1852416 |
| a,sa,tmp | 16394 | 1180368 |
| optList,tmp | 16392 | 1180224 |
| tsr,tmp,stx | 12288 | 884736 |
| tsr,src,tmp | 10280 | 740160 |
| tplarginfo,tagId | 10279 | 740088 |
| parsoid,mw | 8246 | 593712 |
| txt | 8198 | 590256 |
| attribs,caption | 8192 | 589824 |
| tsr,stx,a,sa,tmp | 5261 | 378792 |
| tsr,startTagSrc,tmp | 4098 | 295056 |
| src,srcContent,tmp | 4096 | 294912 |
| stx,a,sa,tmp | 686 | 49392 |
| tsr,src | 255 | 18360 |
| tsr,stx,tmp | 117 | 8424 |
| slot_revision_id,slot_content_id,slot_origin,slot_role_id,content_size,content_sha1,content_address,content_model,role_name,model_name | 70 | 5040 |
| page_id,page_len,page_is_redirect,page_latest,page_restrictions,page_content_model,page_lang,page_touched | 69 | 4968 |
| tokens,tsr,tmp | 28 | 2016 |
| wt | 20 | 1440 |
| name,attrs,body | 17 | 1224 |
| extsrc | 17 | 1224 |
| mw,parsoid | 16 | 1152 |
| stx | 12 | 864 |
| setDSR,inTransclusion,tagId | 12 | 864 |
| stx,tmp,html | 12 | 864 |
| k,named | 11 | 792 |
| src | 11 | 792 |
| extLinkContentOffsets,tmp | 10 | 720 |
| tmp,src,html,extTagOffsets | 10 | 720 |
| stx,a,sa,isIW,tmp | 8 | 576 |
| tsr,startTagSrc,attrSepSrc,tmp | 8 | 576 |
| headingIndex,tagId | 6 | 432 |
| parts | 5 | 360 |
| template | 5 | 360 |
| target,params,i | 5 | 360 |
| wt,href | 5 | 360 |
| tmp,tsr,src | 5 | 360 |
| stx,a,sa,dsr | 4 | 288 |
| tsr,tmp,dsr | 4 | 288 |
| tsr,stx,noClose,tmp | 4 | 288 |
| tsr,stx,selfClose,tmp | 4 | 288 |
| tmp,tsr,src,html,extTagOffsets | 4 | 288 |
| setDSR,tagId | 4 | 288 |
| tokens,tmp | 3 | 216 |
| attribs | 3 | 216 |
| tsr,src,tmp,dsr | 3 | 216 |
| tplarginfo,tagId,tplRanges | 3 | 216 |
| startElem,endElem,id,startOffset,flipped,start,end | 3 | 216 |
| inTransclusion,tagId,tplRanges | 3 | 216 |
| stx,a,sa | 3 | 216 |
| name,attrs | 3 | 216 |
| group,responsive | 3 | 216 |
| tsr,stx,src,extTagOffsets | 2 | 144 |
| tsr,extLinkContentOffsets | 2 | 144 |
| tmp,html,extTagOffsets | 2 | 144 |
| tmp,html | 2 | 144 |
| tsr,optList,tmp | 2 | 144 |
| url,title,work,date,access-date | 2 | 144 |
| pi,dsr | 2 | 144 |
| tmp,src,html,extTagOffsets,dsr,pi | 2 | 144 |
| setDSR,inTransclusion,tagId,tplRanges | 2 | 144 |
| url,title,work,date | 2 | 144 |
| dsr,tmp,html | 2 | 144 |
| page_id,page_len,page_is_redirect,page_latest,page_restrictions,page_content_model,page_lang | 1 | 72 |
| slot_id,slot_revision_id,slot_origin,content_size,content_sha1,slot_content_id,content_address,role_name,model_name | 1 | 72 |
| leadWS,trailWS | 1 | 72 |
| tsr | 1 | 72 |
| parsoid,mw,storedId | 1 | 72 |
| dsr,pi | 1 | 72 |
| id,ignore | 1 | 72 |
| dsr | 1 | 72 |
| tmp,empty | 1 | 72 |
| tmp,src,tsr | 1 | 72 |
| counter,ids | 1 | 72 |
| ids | 1 | 72 |
| ss_total_edits,ss_good_articles,ss_total_pages,ss_users,ss_active_users,ss_images | 1 | 72 |
| escape,str_escape,nonascii,cssid,qname,simple,ref,combinator,attr,pseudo,inside,ident | 1 | 72 |
+----------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------------------+

Event Timeline

Note that the sizes are wrong -- always 72 bytes per object because the object size calculation in the meminfo extension is just a todo comment. I'm working on a version which calculates it correctly.