Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: Source/core/css/resolver/StyleResolver.h

Issue 34623009: Revamp style resolver stats (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: fix stats for mac, crazy StyleResolver constructor side effects Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/css/resolver/SharedStyleFinder.cpp ('k') | Source/core/css/resolver/StyleResolver.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/css/resolver/StyleResolver.h
diff --git a/Source/core/css/resolver/StyleResolver.h b/Source/core/css/resolver/StyleResolver.h
index bc0f33c4ccd121b4cd73c23c39456415a51baa99..e9a6d9391ea7b3676bc883acbdd7808664485b2c 100644
--- a/Source/core/css/resolver/StyleResolver.h
+++ b/Source/core/css/resolver/StyleResolver.h
@@ -65,6 +65,7 @@ class RuleData;
class Settings;
class StyleKeyframe;
class StylePropertySet;
+class StyleResolverStats;
class StyleRule;
class StyleRuleKeyframes;
class StyleRulePage;
@@ -89,80 +90,6 @@ enum RuleMatchingBehavior {
const unsigned styleSharingListSize = 40;
typedef WTF::Deque<Element*, styleSharingListSize> StyleSharingList;
-#undef STYLE_STATS
-
-#ifdef STYLE_STATS
-struct StyleSharingStats {
- void addSearch() { ++m_searches; ++m_totalSearches; }
- void addElementEligibleForSharing() { ++m_elementsEligibleForSharing; ++m_totalElementsEligibleForSharing; }
- void addStyleShared() { ++m_stylesShared; ++m_totalStylesShared; }
- void addSearchFoundSiblingForSharing() { ++m_searchFoundSiblingForSharing; ++m_totalSearchFoundSiblingForSharing; }
- void addSearchMissedSharing() { ++m_searchesMissedSharing; ++m_totalSearchesMissedSharing; }
- void addMatchedPropertiesSearch() { ++m_matchedPropertiesSearches; ++m_totalMatchedPropertiesSearches; }
- void addMatchedPropertiesHit() { ++m_matchedPropertiesHit; ++m_totalMatchedPropertiesHit; }
- void addMatchedPropertiesHitSharedInherited() { ++m_matchedPropertiesSharedInheritedHit; ++m_totalMatchedPropertiesSharedInheritedHit; }
- void addMatchedPropertiesToCache() { ++m_matchedPropertiesToCache; ++m_totalMatchedPropertiesToCache; }
- void addMatchedPropertiesEnteredIntoCache() { ++m_matchedPropertiesEnteredIntoCache; ++m_totalMatchedPropertiesEnteredIntoCache; }
-
- void clear()
- {
- m_searches = m_elementsEligibleForSharing = m_stylesShared = m_searchesMissedSharing = m_searchFoundSiblingForSharing =
- m_matchedPropertiesSearches = m_matchedPropertiesHit = m_matchedPropertiesSharedInheritedHit = m_matchedPropertiesToCache =
- m_matchedPropertiesEnteredIntoCache = 0;
- }
-
- void printStats() const;
-
- unsigned m_searches;
- unsigned m_elementsEligibleForSharing;
- unsigned m_stylesShared;
- unsigned m_searchFoundSiblingForSharing;
- unsigned m_searchesMissedSharing;
- unsigned m_matchedPropertiesSearches;
- unsigned m_matchedPropertiesHit;
- unsigned m_matchedPropertiesSharedInheritedHit;
- unsigned m_matchedPropertiesToCache;
- unsigned m_matchedPropertiesEnteredIntoCache;
-
- unsigned m_totalSearches;
- unsigned m_totalElementsEligibleForSharing;
- unsigned m_totalStylesShared;
- unsigned m_totalSearchFoundSiblingForSharing;
- unsigned m_totalSearchesMissedSharing;
- unsigned m_totalMatchedPropertiesSearches;
- unsigned m_totalMatchedPropertiesHit;
- unsigned m_totalMatchedPropertiesSharedInheritedHit;
- unsigned m_totalMatchedPropertiesToCache;
- unsigned m_totalMatchedPropertiesEnteredIntoCache;
-};
-
-#define STYLE_STATS_ADD_SEARCH() StyleResolver::styleSharingStats().addSearch();
-#define STYLE_STATS_ADD_ELEMENT_ELIGIBLE_FOR_SHARING() StyleResolver::styleSharingStats().addElementEligibleForSharing();
-#define STYLE_STATS_ADD_STYLE_SHARED() StyleResolver::styleSharingStats().addStyleShared();
-#define STYLE_STATS_ADD_SEARCH_FOUND_SIBLING_FOR_SHARING() StyleResolver::styleSharingStats().addSearchFoundSiblingForSharing();
-#define STYLE_STATS_ADD_SEARCH_MISSED_SHARING() StyleResolver::styleSharingStats().addSearchMissedSharing();
-#define STYLE_STATS_PRINT() StyleResolver::styleSharingStats().printStats();
-#define STYLE_STATS_CLEAR() StyleResolver::styleSharingStats().clear();
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_SEARCH() StyleResolver::styleSharingStats().addMatchedPropertiesSearch();
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_HIT() StyleResolver::styleSharingStats().addMatchedPropertiesHit();
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_HIT_SHARED_INHERITED() StyleResolver::styleSharingStats().addMatchedPropertiesHitSharedInherited();
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_TO_CACHE() StyleResolver::styleSharingStats().addMatchedPropertiesToCache();
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_ENTERED_INTO_CACHE() StyleResolver::styleSharingStats().addMatchedPropertiesEnteredIntoCache();
-#else
-#define STYLE_STATS_ADD_SEARCH() (void(0));
-#define STYLE_STATS_ADD_ELEMENT_ELIGIBLE_FOR_SHARING() (void(0));
-#define STYLE_STATS_ADD_STYLE_SHARED() (void(0));
-#define STYLE_STATS_ADD_SEARCH_FOUND_SIBLING_FOR_SHARING() (void(0));
-#define STYLE_STATS_ADD_SEARCH_MISSED_SHARING() (void(0));
-#define STYLE_STATS_PRINT() (void(0));
-#define STYLE_STATS_CLEAR() (void(0));
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_SEARCH() (void(0));
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_HIT() (void(0));
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_HIT_SHARED_INHERITED() (void(0));
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_TO_CACHE() (void(0));
-#define STYLE_STATS_ADD_MATCHED_PROPERTIES_ENTERED_INTO_CACHE() (void(0));
-#endif
-
struct CSSPropertyValue {
CSSPropertyValue(CSSPropertyID property, CSSValue* value)
: property(property), value(value) { }
@@ -280,9 +207,12 @@ public:
void addToStyleSharingList(Element&);
void clearStyleSharingList();
-#ifdef STYLE_STATS
- ALWAYS_INLINE static StyleSharingStats& styleSharingStats() { return m_styleSharingStats; }
-#endif
+ StyleResolverStats* stats() { return m_styleResolverStats.get(); }
+ StyleResolverStats* statsTotals() { return m_styleResolverStatsTotals.get(); }
+ enum StatsReportType { ReportDefaultStats, ReportSlowStats };
+ void enableStats(StatsReportType = ReportDefaultStats);
+ void disableStats();
+ void printStats();
private:
// FontSelectorClient implementation.
@@ -373,9 +303,9 @@ private:
StyleSharingList m_styleSharingList;
-#ifdef STYLE_STATS
- static StyleSharingStats m_styleSharingStats;
-#endif
+ OwnPtr<StyleResolverStats> m_styleResolverStats;
+ OwnPtr<StyleResolverStats> m_styleResolverStatsTotals;
+ unsigned m_styleResolverStatsSequence;
};
inline bool checkRegionSelector(const CSSSelector* regionSelector, Element* regionElement)
« no previous file with comments | « Source/core/css/resolver/SharedStyleFinder.cpp ('k') | Source/core/css/resolver/StyleResolver.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698