Mosh がとても小さな変更でかなり遅くなっていた
Record Accessor のエラーメッセージで詳細を出す目的で書いた数行のコードのために、Mosh 全体が4-5倍ほど遅くなっていた。
Record アクセスの度に、こんな事をしていたら遅くなるのは当たり前なのだが書いた当初は全く気付かなかった。
233 233 234 234 Object RecordAccessor::call(VM* theVM, int argc, const Object* argv) 235 235 { 236 - DeclareProcedureName("record-accessor for record"); 236 + Object name = format(theVM, UC("Record ~a accessor ~d"), Pair::list2(rtd_.toRecordTypeDescriptor()->name(), Object::makeFixnum(index_))); 237 + const ucs4char* procedureName = name.toString()->data().data(); 238 + //DeclareProcedureName("record-accessor for record"); 237 239 checkArgumentLength(1); 238 240 argumentAsRecord(0, record); 239 241 const RecordTypeDescriptor* rtd = record->recordTypeDescriptor(); ...