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

Side by Side Diff: chrome/browser/devtools/devtools_file_system_indexer.cc

Issue 2508443002: [DevTools] Remove dead code from devtools_file_system_indexer.cc (Closed)
Patch Set: Created 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/devtools/devtools_file_system_indexer.h" 5 #include "chrome/browser/devtools/devtools_file_system_indexer.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <iterator> 9 #include <iterator>
10 10
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 const size_t kTrigramCount = 47 const size_t kTrigramCount =
48 kTrigramCharacterCount * kTrigramCharacterCount * kTrigramCharacterCount; 48 kTrigramCharacterCount * kTrigramCharacterCount * kTrigramCharacterCount;
49 const int kMaxReadLength = 10 * 1024; 49 const int kMaxReadLength = 10 * 1024;
50 const TrigramChar kUndefinedTrigramChar = -1; 50 const TrigramChar kUndefinedTrigramChar = -1;
51 const TrigramChar kBinaryTrigramChar = -2; 51 const TrigramChar kBinaryTrigramChar = -2;
52 const Trigram kUndefinedTrigram = -1; 52 const Trigram kUndefinedTrigram = -1;
53 53
54 class Index { 54 class Index {
55 public: 55 public:
56 Index(); 56 Index();
57 // Index is only instantiated as a leak LazyInstance, so the destructor is
58 // never called.
59 ~Index() = delete;
60
57 Time LastModifiedTimeForFile(const FilePath& file_path); 61 Time LastModifiedTimeForFile(const FilePath& file_path);
58 void SetTrigramsForFile(const FilePath& file_path, 62 void SetTrigramsForFile(const FilePath& file_path,
59 const vector<Trigram>& index, 63 const vector<Trigram>& index,
60 const Time& time); 64 const Time& time);
61 vector<FilePath> Search(string query); 65 vector<FilePath> Search(string query);
62 void PrintStats();
63 void NormalizeVectors(); 66 void NormalizeVectors();
64 67
65 private: 68 private:
66 ~Index();
67
68 FileId GetFileId(const FilePath& file_path); 69 FileId GetFileId(const FilePath& file_path);
69 70
70 typedef map<FilePath, FileId> FileIdsMap; 71 typedef map<FilePath, FileId> FileIdsMap;
71 FileIdsMap file_ids_; 72 FileIdsMap file_ids_;
72 FileId last_file_id_; 73 FileId last_file_id_;
73 // The index in this vector is the trigram id. 74 // The index in this vector is the trigram id.
74 vector<vector<FileId> > index_; 75 vector<vector<FileId> > index_;
75 typedef map<FilePath, Time> IndexedFilesMap; 76 typedef map<FilePath, Time> IndexedFilesMap;
76 IndexedFilesMap index_times_; 77 IndexedFilesMap index_times_;
77 vector<bool> is_normalized_; 78 vector<bool> is_normalized_;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 trigram_chars[index + 2]; 132 trigram_chars[index + 2];
132 return trigram; 133 return trigram;
133 } 134 }
134 135
135 Index::Index() : last_file_id_(0) { 136 Index::Index() : last_file_id_(0) {
136 index_.resize(kTrigramCount); 137 index_.resize(kTrigramCount);
137 is_normalized_.resize(kTrigramCount); 138 is_normalized_.resize(kTrigramCount);
138 std::fill(is_normalized_.begin(), is_normalized_.end(), true); 139 std::fill(is_normalized_.begin(), is_normalized_.end(), true);
139 } 140 }
140 141
141 Index::~Index() {}
142
143 Time Index::LastModifiedTimeForFile(const FilePath& file_path) { 142 Time Index::LastModifiedTimeForFile(const FilePath& file_path) {
144 DCHECK_CURRENTLY_ON(BrowserThread::FILE); 143 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
145 Time last_modified_time; 144 Time last_modified_time;
146 if (index_times_.find(file_path) != index_times_.end()) 145 if (index_times_.find(file_path) != index_times_.end())
147 last_modified_time = index_times_[file_path]; 146 last_modified_time = index_times_[file_path];
148 return last_modified_time; 147 return last_modified_time;
149 } 148 }
150 149
151 void Index::SetTrigramsForFile(const FilePath& file_path, 150 void Index::SetTrigramsForFile(const FilePath& file_path,
152 const vector<Trigram>& index, 151 const vector<Trigram>& index,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 for (size_t i = 0; i < kTrigramCount; ++i) { 219 for (size_t i = 0; i < kTrigramCount; ++i) {
221 if (!is_normalized_[i]) { 220 if (!is_normalized_[i]) {
222 std::sort(index_[i].begin(), index_[i].end()); 221 std::sort(index_[i].begin(), index_[i].end());
223 if (index_[i].capacity() > index_[i].size()) 222 if (index_[i].capacity() > index_[i].size())
224 vector<FileId>(index_[i]).swap(index_[i]); 223 vector<FileId>(index_[i]).swap(index_[i]);
225 is_normalized_[i] = true; 224 is_normalized_[i] = true;
226 } 225 }
227 } 226 }
228 } 227 }
229 228
230 void Index::PrintStats() {
231 DCHECK_CURRENTLY_ON(BrowserThread::FILE);
232 LOG(ERROR) << "Index stats:";
233 size_t size = 0;
234 size_t maxSize = 0;
235 size_t capacity = 0;
236 for (size_t i = 0; i < kTrigramCount; ++i) {
237 if (index_[i].size() > maxSize)
238 maxSize = index_[i].size();
239 size += index_[i].size();
240 capacity += index_[i].capacity();
241 }
242 LOG(ERROR) << " - total trigram count: " << size;
243 LOG(ERROR) << " - max file count per trigram: " << maxSize;
244 LOG(ERROR) << " - total vectors capacity " << capacity;
245 size_t total_index_size =
246 capacity * sizeof(FileId) + sizeof(vector<FileId>) * kTrigramCount;
247 LOG(ERROR) << " - estimated total index size " << total_index_size;
248 }
249
250 typedef Callback<void(bool, const vector<bool>&)> IndexerCallback; 229 typedef Callback<void(bool, const vector<bool>&)> IndexerCallback;
251 230
252 } // namespace 231 } // namespace
253 232
254 DevToolsFileSystemIndexer::FileSystemIndexingJob::FileSystemIndexingJob( 233 DevToolsFileSystemIndexer::FileSystemIndexingJob::FileSystemIndexingJob(
255 const FilePath& file_system_path, 234 const FilePath& file_system_path,
256 const TotalWorkCallback& total_work_callback, 235 const TotalWorkCallback& total_work_callback,
257 const WorkedCallback& worked_callback, 236 const WorkedCallback& worked_callback,
258 const DoneCallback& done_callback) 237 const DoneCallback& done_callback)
259 : file_system_path_(file_system_path), 238 : file_system_path_(file_system_path),
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 vector<FilePath> file_paths = g_trigram_index.Get().Search(query); 456 vector<FilePath> file_paths = g_trigram_index.Get().Search(query);
478 vector<string> result; 457 vector<string> result;
479 FilePath path = FilePath::FromUTF8Unsafe(file_system_path); 458 FilePath path = FilePath::FromUTF8Unsafe(file_system_path);
480 vector<FilePath>::const_iterator it = file_paths.begin(); 459 vector<FilePath>::const_iterator it = file_paths.begin();
481 for (; it != file_paths.end(); ++it) { 460 for (; it != file_paths.end(); ++it) {
482 if (path.IsParent(*it)) 461 if (path.IsParent(*it))
483 result.push_back(it->AsUTF8Unsafe()); 462 result.push_back(it->AsUTF8Unsafe());
484 } 463 }
485 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, Bind(callback, result)); 464 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, Bind(callback, result));
486 } 465 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698