| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Use trace_analyzer::Query and trace_analyzer::TraceAnalyzer to search for | 5 // Use trace_analyzer::Query and trace_analyzer::TraceAnalyzer to search for |
| 6 // specific trace events that were generated by the trace_event.h API. | 6 // specific trace events that were generated by the trace_event.h API. |
| 7 // | 7 // |
| 8 // Basic procedure: | 8 // Basic procedure: |
| 9 // - Get trace events JSON string from base::debug::TraceLog. | 9 // - Get trace events JSON string from base::debug::TraceLog. |
| 10 // - Create TraceAnalyzer with JSON string. | 10 // - Create TraceAnalyzer with JSON string. |
| (...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 // TraceAnalyzer helps tests search for trace events. | 556 // TraceAnalyzer helps tests search for trace events. |
| 557 class TraceAnalyzer { | 557 class TraceAnalyzer { |
| 558 public: | 558 public: |
| 559 ~TraceAnalyzer(); | 559 ~TraceAnalyzer(); |
| 560 | 560 |
| 561 // Use trace events from JSON string generated by tracing API. | 561 // Use trace events from JSON string generated by tracing API. |
| 562 // Returns non-NULL if the JSON is successfully parsed. | 562 // Returns non-NULL if the JSON is successfully parsed. |
| 563 static TraceAnalyzer* Create(const std::string& json_events) | 563 static TraceAnalyzer* Create(const std::string& json_events) |
| 564 WARN_UNUSED_RESULT; | 564 WARN_UNUSED_RESULT; |
| 565 | 565 |
| 566 void SetIgnoreMetadataEvents(bool ignore) { ignore_metadata_events_ = true; } |
| 567 |
| 566 // Associate BEGIN and END events with each other. This allows Query(OTHER_*) | 568 // Associate BEGIN and END events with each other. This allows Query(OTHER_*) |
| 567 // to access the associated event and enables Query(EVENT_DURATION). | 569 // to access the associated event and enables Query(EVENT_DURATION). |
| 568 // An end event will match the most recent begin event with the same name, | 570 // An end event will match the most recent begin event with the same name, |
| 569 // category, process ID and thread ID. This matches what is shown in | 571 // category, process ID and thread ID. This matches what is shown in |
| 570 // about:tracing. After association, the BEGIN event will point to the | 572 // about:tracing. After association, the BEGIN event will point to the |
| 571 // matching END event, but the END event will not point to the BEGIN event. | 573 // matching END event, but the END event will not point to the BEGIN event. |
| 572 void AssociateBeginEndEvents(); | 574 void AssociateBeginEndEvents(); |
| 573 | 575 |
| 574 // Associate ASYNC_BEGIN, ASYNC_STEP and ASYNC_END events with each other. | 576 // Associate ASYNC_BEGIN, ASYNC_STEP and ASYNC_END events with each other. |
| 575 // An ASYNC_END event will match the most recent ASYNC_BEGIN or ASYNC_STEP | 577 // An ASYNC_END event will match the most recent ASYNC_BEGIN or ASYNC_STEP |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 623 private: | 625 private: |
| 624 TraceAnalyzer(); | 626 TraceAnalyzer(); |
| 625 | 627 |
| 626 bool SetEvents(const std::string& json_events) WARN_UNUSED_RESULT; | 628 bool SetEvents(const std::string& json_events) WARN_UNUSED_RESULT; |
| 627 | 629 |
| 628 // Read metadata (thread names, etc) from events. | 630 // Read metadata (thread names, etc) from events. |
| 629 void ParseMetadata(); | 631 void ParseMetadata(); |
| 630 | 632 |
| 631 std::map<TraceEvent::ProcessThreadID, std::string> thread_names_; | 633 std::map<TraceEvent::ProcessThreadID, std::string> thread_names_; |
| 632 std::vector<TraceEvent> raw_events_; | 634 std::vector<TraceEvent> raw_events_; |
| 635 bool ignore_metadata_events_; |
| 633 bool allow_assocation_changes_; | 636 bool allow_assocation_changes_; |
| 634 | 637 |
| 635 DISALLOW_COPY_AND_ASSIGN(TraceAnalyzer); | 638 DISALLOW_COPY_AND_ASSIGN(TraceAnalyzer); |
| 636 }; | 639 }; |
| 637 | 640 |
| 638 // Utility functions for TraceEventVector. | 641 // Utility functions for TraceEventVector. |
| 639 | 642 |
| 640 struct RateStats { | 643 struct RateStats { |
| 641 double min_us; | 644 double min_us; |
| 642 double max_us; | 645 double max_us; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 | 696 |
| 694 // Count all matches. | 697 // Count all matches. |
| 695 static inline size_t CountMatches(const TraceEventVector& events, | 698 static inline size_t CountMatches(const TraceEventVector& events, |
| 696 const Query& query) { | 699 const Query& query) { |
| 697 return CountMatches(events, query, 0u, events.size()); | 700 return CountMatches(events, query, 0u, events.size()); |
| 698 } | 701 } |
| 699 | 702 |
| 700 } // namespace trace_analyzer | 703 } // namespace trace_analyzer |
| 701 | 704 |
| 702 #endif // BASE_TEST_TRACE_EVENT_ANALYZER_H_ | 705 #endif // BASE_TEST_TRACE_EVENT_ANALYZER_H_ |
| OLD | NEW |