Index: content/browser/indexed_db/leveldb/leveldb_database.cc |
diff --git a/content/browser/indexed_db/leveldb/leveldb_database.cc b/content/browser/indexed_db/leveldb/leveldb_database.cc |
index 9e70f463856ad7e1c5ab5a0e2fb69e161853be60..d9708aca53e957d5d81876c33a76f4b5fdffd7e8 100644 |
--- a/content/browser/indexed_db/leveldb/leveldb_database.cc |
+++ b/content/browser/indexed_db/leveldb/leveldb_database.cc |
@@ -264,6 +264,8 @@ leveldb::Status LevelDBDatabase::Open(const base::FilePath& file_name, |
const LevelDBComparator* comparator, |
scoped_ptr<LevelDBDatabase>* result, |
bool* is_disk_full) { |
+ base::TimeTicks begin_time = base::TimeTicks::Now(); |
+ |
scoped_ptr<ComparatorAdapter> comparator_adapter( |
new ComparatorAdapter(comparator)); |
@@ -284,6 +286,9 @@ leveldb::Status LevelDBDatabase::Open(const base::FilePath& file_name, |
return s; |
} |
+ UMA_HISTOGRAM_MEDIUM_TIMES("WebCore.IndexedDB.LevelDB.OpenTime.Disk", |
jsbell
2014/08/13 22:49:11
Assumes anything < 10 seconds is "fast enough" and
cmumford
2014/08/13 23:53:02
If I'm reading the code correctly then UMA_HISTOGR
dgrogan
2014/08/13 23:55:18
They'll show up in the 0 bucket.
|
+ base::TimeTicks::Now() - begin_time); |
+ |
CheckFreeSpace("Success", file_name); |
(*result).reset(new LevelDBDatabase); |
@@ -320,6 +325,8 @@ scoped_ptr<LevelDBDatabase> LevelDBDatabase::OpenInMemory( |
leveldb::Status LevelDBDatabase::Put(const StringPiece& key, |
std::string* value) { |
+ base::TimeTicks begin_time = base::TimeTicks::Now(); |
+ |
leveldb::WriteOptions write_options; |
write_options.sync = kSyncWrites; |
@@ -327,6 +334,9 @@ leveldb::Status LevelDBDatabase::Put(const StringPiece& key, |
db_->Put(write_options, MakeSlice(key), MakeSlice(*value)); |
if (!s.ok()) |
LOG(ERROR) << "LevelDB put failed: " << s.ToString(); |
+ else |
+ UMA_HISTOGRAM_TIMES("WebCore.IndexedDB.LevelDB.PutTime", |
+ base::TimeTicks::Now() - begin_time); |
return s; |
} |
@@ -363,6 +373,7 @@ leveldb::Status LevelDBDatabase::Get(const StringPiece& key, |
} |
leveldb::Status LevelDBDatabase::Write(const LevelDBWriteBatch& write_batch) { |
+ base::TimeTicks begin_time = base::TimeTicks::Now(); |
leveldb::WriteOptions write_options; |
write_options.sync = kSyncWrites; |
@@ -371,6 +382,9 @@ leveldb::Status LevelDBDatabase::Write(const LevelDBWriteBatch& write_batch) { |
if (!s.ok()) { |
HistogramLevelDBError("WebCore.IndexedDB.LevelDBWriteErrors", s); |
LOG(ERROR) << "LevelDB write failed: " << s.ToString(); |
+ } else { |
+ UMA_HISTOGRAM_TIMES("WebCore.IndexedDB.LevelDB.WriteTime", |
+ base::TimeTicks::Now() - begin_time); |
} |
return s; |
} |