3a4d3681d7
This gets rid of native calls for ThreadLocal hasValue/getValue
===
- 51.34% 4.46% DartWorker JsonEncode.dart.bin [.] double.toString
- 46.89% double.toString
- 43.06% double._toString
- 42.48% stub CallBootstrapNative
- 41.52% dart::NativeEntry::BootstrapNativeCallWrapper(_Dart_NativeArguments*, void (*)(_Dart_NativeArguments*
+ 27.38% dart::Number::ToString(dart::Heap::Space) const
+ 5.79% dart::OneByteString::New(unsigned char const*, long, dart::Heap::Space)
+ 1.79% dart::BootstrapNatives::DN_Double_toString(dart::Thread*, dart::Zone*, dart::NativeArguments*)
1.27% __strlen_evex
0.92% dart::TransitionGeneratedToVM::TransitionGeneratedToVM(dart::Thread*)
0.88% dart::StackZone::StackZone(dart::ThreadState*)
0.72% __memmove_evex_unaligned_erms
0.71% dart::StackZone::~StackZone()
1.47% _DoubleToStringCache.store
+ 4.44% start_thread
===
Benchmark improvements:
- JsonEncode.Numbers.FromString (Raspberry Pi 4) 50.25%
- JsonEncode.Numbers.FromBytes (Raspberry Pi 4) 48.69%
BUG=https://github.com/dart-lang/sdk/issues/62046
TEST=ci
Change-Id: I3cdbaf085dfc23fcad4544be8a299b7520c7d825
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/464320
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>