OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/symbols.h" | 5 #include "vm/symbols.h" |
6 | 6 |
7 #include "vm/handles.h" | 7 #include "vm/handles.h" |
8 #include "vm/handles_impl.h" | 8 #include "vm/handles_impl.h" |
9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 void Symbols::DumpStats() { | 279 void Symbols::DumpStats() { |
280 if (FLAG_dump_symbol_stats) { | 280 if (FLAG_dump_symbol_stats) { |
281 intptr_t table_size = 0; | 281 intptr_t table_size = 0; |
282 dart::Smi& used = Smi::Handle(); | 282 dart::Smi& used = Smi::Handle(); |
283 Array& symbol_table = Array::Handle(Array::null()); | 283 Array& symbol_table = Array::Handle(Array::null()); |
284 | 284 |
285 // First dump VM symbol table stats. | 285 // First dump VM symbol table stats. |
286 symbol_table = Dart::vm_isolate()->object_store()->symbol_table(); | 286 symbol_table = Dart::vm_isolate()->object_store()->symbol_table(); |
287 table_size = symbol_table.Length() - 1; | 287 table_size = symbol_table.Length() - 1; |
288 used ^= symbol_table.At(table_size); | 288 used ^= symbol_table.At(table_size); |
289 OS::Print("VM Isolate: Number of symbols : %"Pd"\n", used.Value()); | 289 OS::Print("VM Isolate: Number of symbols : %" Pd "\n", used.Value()); |
290 OS::Print("VM Isolate: Symbol table capacity : %"Pd"\n", table_size); | 290 OS::Print("VM Isolate: Symbol table capacity : %" Pd "\n", table_size); |
291 | 291 |
292 // Now dump regular isolate symbol table stats. | 292 // Now dump regular isolate symbol table stats. |
293 symbol_table = Isolate::Current()->object_store()->symbol_table(); | 293 symbol_table = Isolate::Current()->object_store()->symbol_table(); |
294 table_size = symbol_table.Length() - 1; | 294 table_size = symbol_table.Length() - 1; |
295 used ^= symbol_table.At(table_size); | 295 used ^= symbol_table.At(table_size); |
296 OS::Print("Isolate: Number of symbols : %"Pd"\n", used.Value()); | 296 OS::Print("Isolate: Number of symbols : %" Pd "\n", used.Value()); |
297 OS::Print("Isolate: Symbol table capacity : %"Pd"\n", table_size); | 297 OS::Print("Isolate: Symbol table capacity : %" Pd "\n", table_size); |
298 | 298 |
299 // Dump overall collision and growth counts. | 299 // Dump overall collision and growth counts. |
300 OS::Print("Number of symbol table grows = %"Pd"\n", num_of_grows_); | 300 OS::Print("Number of symbol table grows = %" Pd "\n", num_of_grows_); |
301 OS::Print("Collision counts on add and lookup :\n"); | 301 OS::Print("Collision counts on add and lookup :\n"); |
302 intptr_t i = 0; | 302 intptr_t i = 0; |
303 for (i = 0; i < (kMaxCollisionBuckets - 1); i++) { | 303 for (i = 0; i < (kMaxCollisionBuckets - 1); i++) { |
304 OS::Print(" %"Pd" collisions => %"Pd"\n", i, collision_count_[i]); | 304 OS::Print(" %" Pd " collisions => %" Pd "\n", i, collision_count_[i]); |
305 } | 305 } |
306 OS::Print(" > %"Pd" collisions => %"Pd"\n", i, collision_count_[i]); | 306 OS::Print(" > %" Pd " collisions => %" Pd "\n", i, collision_count_[i]); |
307 } | 307 } |
308 } | 308 } |
309 | 309 |
310 | 310 |
311 void Symbols::GrowSymbolTable(const Array& symbol_table) { | 311 void Symbols::GrowSymbolTable(const Array& symbol_table) { |
312 // TODO(iposva): Avoid exponential growth. | 312 // TODO(iposva): Avoid exponential growth. |
313 num_of_grows_ += 1; | 313 num_of_grows_ += 1; |
314 intptr_t table_size = symbol_table.Length() - 1; | 314 intptr_t table_size = symbol_table.Length() - 1; |
315 intptr_t new_table_size = table_size * 2; | 315 intptr_t new_table_size = table_size * 2; |
316 Array& new_symbol_table = Array::Handle(Array::New(new_table_size + 1)); | 316 Array& new_symbol_table = Array::Handle(Array::New(new_table_size + 1)); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 RawObject* Symbols::GetVMSymbol(intptr_t object_id) { | 447 RawObject* Symbols::GetVMSymbol(intptr_t object_id) { |
448 ASSERT(IsVMSymbolId(object_id)); | 448 ASSERT(IsVMSymbolId(object_id)); |
449 intptr_t i = (object_id - kMaxPredefinedObjectIds); | 449 intptr_t i = (object_id - kMaxPredefinedObjectIds); |
450 if ((i > kIllegal) && (i < Symbols::kMaxPredefinedId)) { | 450 if ((i > kIllegal) && (i < Symbols::kMaxPredefinedId)) { |
451 return symbol_handles_[i]->raw(); | 451 return symbol_handles_[i]->raw(); |
452 } | 452 } |
453 return Object::null(); | 453 return Object::null(); |
454 } | 454 } |
455 | 455 |
456 } // namespace dart | 456 } // namespace dart |
OLD | NEW |