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

Side by Side Diff: base/test/trace_event_analyzer.cc

Issue 277883002: Add cpu count to trace metadata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix tests Created 6 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "base/test/trace_event_analyzer.h" 5 #include "base/test/trace_event_analyzer.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <math.h> 8 #include <math.h>
9 #include <set> 9 #include <set>
10 10
(...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 number_(0) { 627 number_(0) {
628 type_ = (unary_op < OP_ADD ? 628 type_ = (unary_op < OP_ADD ?
629 QUERY_BOOLEAN_OPERATOR : QUERY_ARITHMETIC_OPERATOR); 629 QUERY_BOOLEAN_OPERATOR : QUERY_ARITHMETIC_OPERATOR);
630 } 630 }
631 631
632 namespace { 632 namespace {
633 633
634 // Search |events| for |query| and add matches to |output|. 634 // Search |events| for |query| and add matches to |output|.
635 size_t FindMatchingEvents(const std::vector<TraceEvent>& events, 635 size_t FindMatchingEvents(const std::vector<TraceEvent>& events,
636 const Query& query, 636 const Query& query,
637 TraceEventVector* output) { 637 TraceEventVector* output,
638 bool ignore_metadata_events) {
638 for (size_t i = 0; i < events.size(); ++i) { 639 for (size_t i = 0; i < events.size(); ++i) {
640 if (ignore_metadata_events && events[i].phase == TRACE_EVENT_PHASE_METADATA)
641 continue;
639 if (query.Evaluate(events[i])) 642 if (query.Evaluate(events[i]))
640 output->push_back(&events[i]); 643 output->push_back(&events[i]);
641 } 644 }
642 return output->size(); 645 return output->size();
643 } 646 }
644 647
645 bool ParseEventsFromJson(const std::string& json, 648 bool ParseEventsFromJson(const std::string& json,
646 std::vector<TraceEvent>* output) { 649 std::vector<TraceEvent>* output) {
647 scoped_ptr<base::Value> root; 650 scoped_ptr<base::Value> root;
648 root.reset(base::JSONReader::Read(json)); 651 root.reset(base::JSONReader::Read(json));
(...skipping 13 matching lines...) Expand all
662 } 665 }
663 } 666 }
664 667
665 return true; 668 return true;
666 } 669 }
667 670
668 } // namespace 671 } // namespace
669 672
670 // TraceAnalyzer 673 // TraceAnalyzer
671 674
672 TraceAnalyzer::TraceAnalyzer() : allow_assocation_changes_(true) { 675 TraceAnalyzer::TraceAnalyzer()
673 } 676 : ignore_metadata_events_(false),
677 allow_assocation_changes_(true) {}
674 678
675 TraceAnalyzer::~TraceAnalyzer() { 679 TraceAnalyzer::~TraceAnalyzer() {
676 } 680 }
677 681
678 // static 682 // static
679 TraceAnalyzer* TraceAnalyzer::Create(const std::string& json_events) { 683 TraceAnalyzer* TraceAnalyzer::Create(const std::string& json_events) {
680 scoped_ptr<TraceAnalyzer> analyzer(new TraceAnalyzer()); 684 scoped_ptr<TraceAnalyzer> analyzer(new TraceAnalyzer());
681 if (analyzer->SetEvents(json_events)) 685 if (analyzer->SetEvents(json_events))
682 return analyzer.release(); 686 return analyzer.release();
683 return NULL; 687 return NULL;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
781 other->arg_strings.begin(), 785 other->arg_strings.begin(),
782 other->arg_strings.end()); 786 other->arg_strings.end());
783 other = other->other_event; 787 other = other->other_event;
784 } 788 }
785 } 789 }
786 } 790 }
787 791
788 size_t TraceAnalyzer::FindEvents(const Query& query, TraceEventVector* output) { 792 size_t TraceAnalyzer::FindEvents(const Query& query, TraceEventVector* output) {
789 allow_assocation_changes_ = false; 793 allow_assocation_changes_ = false;
790 output->clear(); 794 output->clear();
791 return FindMatchingEvents(raw_events_, query, output); 795 return FindMatchingEvents(
796 raw_events_, query, output, ignore_metadata_events_);
792 } 797 }
793 798
794 const TraceEvent* TraceAnalyzer::FindFirstOf(const Query& query) { 799 const TraceEvent* TraceAnalyzer::FindFirstOf(const Query& query) {
795 TraceEventVector output; 800 TraceEventVector output;
796 if (FindEvents(query, &output) > 0) 801 if (FindEvents(query, &output) > 0)
797 return output.front(); 802 return output.front();
798 return NULL; 803 return NULL;
799 } 804 }
800 805
801 const TraceEvent* TraceAnalyzer::FindLastOf(const Query& query) { 806 const TraceEvent* TraceAnalyzer::FindLastOf(const Query& query) {
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 end_position = (end_position < events.size()) ? end_position : events.size(); 959 end_position = (end_position < events.size()) ? end_position : events.size();
955 size_t count = 0u; 960 size_t count = 0u;
956 for (size_t i = begin_position; i < end_position; ++i) { 961 for (size_t i = begin_position; i < end_position; ++i) {
957 if (query.Evaluate(*events.at(i))) 962 if (query.Evaluate(*events.at(i)))
958 ++count; 963 ++count;
959 } 964 }
960 return count; 965 return count;
961 } 966 }
962 967
963 } // namespace trace_analyzer 968 } // namespace trace_analyzer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698