# To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 1K of event 'cpu-clock:ppp' # Event count (approx.): 188100000 # # Overhead Samples Command Shared Object Symbol # ........ ............ ....... .................... ............................................................................................................................................................................................................................................................................................................... # 37.48% 705 osh oils-for-unix [.] MarkSweepHeap::MaybeMarkAndPush(RawObject*) 12.07% 227 osh oils-for-unix [.] MarkSweepHeap::TraceChildren() 5.32% 100 osh oils-for-unix [.] MarkSweepHeap::Sweep() 5.26% 99 osh oils-for-unix [.] MarkSweepHeap::Allocate(unsigned long, int*, int*) 2.50% 47 osh oils-for-unix [.] match::OneToken(types_asdl::lex_mode_e, BigStr*, int) 1.81% 34 osh oils-for-unix [.] lexer::LineLexer::Read(types_asdl::lex_mode_e) 1.59% 30 osh oils-for-unix [.] cmd_parse::CommandParser::_GetWord() 1.33% 25 osh oils-for-unix [.] lexer::Lexer::_Read(types_asdl::lex_mode_e) 1.22% 23 osh [kernel.kallsyms] [k] 0xffffffff8caae7a3 1.22% 23 osh [kernel.kallsyms] [k] 0xffffffff8d9696c7 1.01% 19 osh [kernel.kallsyms] [k] 0xffffffff8d9eb679 0.90% 17 osh oils-for-unix [.] alloc::Arena::NewToken(int, int, int, syntax_asdl::SourceLine*) 0.80% 15 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.80% 15 osh oils-for-unix [.] word_parse::WordParser::_ReadCompoundWord3(types_asdl::lex_mode_e, int, bool) 0.64% 12 osh oils-for-unix [.] word_::CommandId(syntax_asdl::word_t*) 0.58% 11 osh libc.so.6 [.] __getdelim 0.58% 11 osh oils-for-unix [.] lexer::Lexer::Read(types_asdl::lex_mode_e) 0.58% 11 osh oils-for-unix [.] word_parse::WordParser::_ReadWord(types_asdl::lex_mode_e) 0.53% 10 osh oils-for-unix [.] List::at(int) 0.53% 10 osh oils-for-unix [.] process::ChildStateChange::ApplyFromParent(process::Process*) 0.53% 10 osh oils-for-unix [.] word_parse::WordParser::ReadWord(types_asdl::lex_mode_e) 0.48% 9 osh oils-for-unix [.] cmd_parse::CommandParser::ParseSimpleCommand() 0.48% 9 osh oils-for-unix [.] word_::CommandKind(syntax_asdl::word_t*) 0.43% 8 osh libc.so.6 [.] malloc 0.43% 8 osh oils-for-unix [.] cmd_parse::_SplitSimpleCommandPrefix(List*) 0.43% 8 osh oils-for-unix [.] word_parse::WordParser::_MaybeReadWordPart(bool, types_asdl::lex_mode_e, List*) 0.37% 7 osh oils-for-unix [.] List::append(syntax_asdl::SourceLine*) 0.37% 7 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.37% 7 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseCommandTerm() 0.37% 7 osh oils-for-unix [.] consts::GetKind(unsigned short) 0.37% 7 osh oils-for-unix [.] word_::LiteralId(syntax_asdl::word_part_t*) 0.37% 7 osh oils-for-unix [.] word_::_EvalWordPart(syntax_asdl::word_part_t*) 0.37% 7 osh oils-for-unix [.] word_parse::WordParser::_GetToken() 0.32% 6 osh [kernel.kallsyms] [k] 0xffffffff8ce3e90b 0.32% 6 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCommand() 0.32% 6 osh oils-for-unix [.] cmd_parse::CommandParser::_MaybeExpandAliases(List*) 0.27% 5 osh oils-for-unix [.] BigStr::slice(int, int) 0.27% 5 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.27% 5 osh oils-for-unix [.] List* Alloc>() 0.27% 5 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseAndOr() 0.27% 5 osh oils-for-unix [.] cmd_parse::CommandParser::_ScanSimpleCommand() 0.27% 5 osh oils-for-unix [.] word_::StaticEval(syntax_asdl::word_t*) 0.21% 4 osh libc.so.6 [.] 0x00000000000a48b0 0.21% 4 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.21% 4 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.21% 4 osh oils-for-unix [.] alloc::Arena::AddLine(BigStr*, int) 0.16% 3 osh [kernel.kallsyms] [k] 0xffffffff8cdad03f 0.16% 3 osh [kernel.kallsyms] [k] 0xffffffff8d122fa4 0.16% 3 osh [kernel.kallsyms] [k] 0xffffffff8d16a420 0.16% 3 osh [kernel.kallsyms] [k] 0xffffffff8db04104 0.16% 3 osh libc.so.6 [.] cfree 0.16% 3 osh libc.so.6 [.] 0x00000000001a104a 0.16% 3 osh oils-for-unix [.] cmd_parse::CommandParser::ParseIf() 0.16% 3 osh oils-for-unix [.] lexer::LineLexer::LookAheadOne(types_asdl::lex_mode_e) 0.16% 3 osh oils-for-unix [.] mylib::CFile::readline() 0.16% 3 osh oils-for-unix [.] reader::_Reader::GetLine() 0.16% 3 osh oils-for-unix [.] word_parse::WordParser::_ReadUnquotedLeftParts(syntax_asdl::BoolParamBox*) 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cd276a1 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cda2704 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cda557b 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cda6599 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cdad2fa 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8cdd5b2c 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8ce38f87 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8ce3bb19 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8ce40255 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffff8d9e506e 0.11% 2 osh ld-linux-x86-64.so.2 [.] 0x0000000000011429 0.11% 2 osh libc.so.6 [.] 0x00000000000a2745 0.11% 2 osh libc.so.6 [.] 0x00000000000a2a1d 0.11% 2 osh libc.so.6 [.] 0x00000000001992fd 0.11% 2 osh libc.so.6 [.] 0x00000000001a0aca 0.11% 2 osh oils-for-unix [.] BigStr::endswith(BigStr*) 0.11% 2 osh oils-for-unix [.] BigStr::join(List*) 0.11% 2 osh oils-for-unix [.] List*>* Alloc*>>() 0.11% 2 osh oils-for-unix [.] List* Alloc>() 0.11% 2 osh oils-for-unix [.] List* NewList(std::initializer_list) 0.11% 2 osh oils-for-unix [.] List* Alloc>() 0.11% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParsePipeline() 0.11% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParseRedirect() 0.11% 2 osh oils-for-unix [.] cmd_parse::_AppendMoreEnv(List*, List*) 0.11% 2 osh oils-for-unix [.] cmd_parse::_MakeAssignPair(parse_lib::ParseContext*, syntax_asdl::ParsedAssignment*, alloc::Arena*) 0.11% 2 osh oils-for-unix [.] cmd_parse::_MakeSimpleCommand(List*, List*, syntax_asdl::ArgList*, syntax_asdl::LiteralBlock*) 0.11% 2 osh oils-for-unix [.] cmd_parse::_ReadHereLines(reader::_Reader*, syntax_asdl::Redir*, BigStr*) 0.11% 2 osh oils-for-unix [.] location::LeftTokenForWordPart(syntax_asdl::word_part_t*) 0.11% 2 osh oils-for-unix [.] word_::AsKeywordToken(syntax_asdl::word_t*) 0.11% 2 osh oils-for-unix [.] word_parse::WordParser::LookAheadFuncParens() 0.11% 2 osh oils-for-unix [.] word_parse::WordParser::_ReadLikeDQ(syntax_asdl::Token*, bool, List*) 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8caae7ee 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8caae806 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8caae80a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8caae83a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8caae83e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cab1a3e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cb68d71 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cbb0a25 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd283a9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd2e0cc 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd4c507 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd4daf4 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd5e9d3 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd806a6 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cd82822 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda25ea 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda25eb 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda2b7c 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda2b97 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda2bda 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda548d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda5492 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda5588 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda562d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda6347 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda6577 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda6604 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda66d2 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda69b1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cda894f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdaa108 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdaa534 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad17e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad22d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad25d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad264 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad2c0 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad2f6 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdad6e9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdb6eb5 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdb9abf 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdb9aca 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc126d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc1339 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc14be 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc14c1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc3d36 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc40ac 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdc413f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd180f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd2535 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd4acd 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd4af1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd4b32 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd6864 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdd7d52 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdfc4e1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdfff45 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdfffcd 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8cdfffde 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce00011 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce12364 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce12c4b 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce34115 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce38fa8 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3aaac 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3bba9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3bbb8 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3bbc9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3bf79 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3d89a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3dc34 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3e8c0 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce3f615 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce404d2 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce6f74a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8ce87147 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d02f085 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d122faa 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d21efac 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d21efae 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d21efdd 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d949073 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d949105 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d94bc8f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d94f083 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d9d6dc4 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d9d7190 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d9eb978 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8d9ebcd1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffff8db04109 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b734 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000c12d 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000c151 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000015dbd 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000027266 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000028007 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000028124 0.05% 1 osh libc.so.6 [.] isupper 0.05% 1 osh libc.so.6 [.] 0x00000000000a26c8 0.05% 1 osh libc.so.6 [.] 0x00000000000a26d5 0.05% 1 osh libc.so.6 [.] 0x00000000000a2801 0.05% 1 osh libc.so.6 [.] 0x00000000000a2808 0.05% 1 osh libc.so.6 [.] 0x00000000000a28c4 0.05% 1 osh libc.so.6 [.] 0x00000000000a3367 0.05% 1 osh libc.so.6 [.] 0x00000000000a3cfd 0.05% 1 osh libc.so.6 [.] 0x00000000000a3d74 0.05% 1 osh libc.so.6 [.] 0x00000000000a3e62 0.05% 1 osh libc.so.6 [.] 0x00000000000a3f09 0.05% 1 osh libc.so.6 [.] 0x00000000000a4240 0.05% 1 osh libc.so.6 [.] 0x00000000000a4257 0.05% 1 osh libc.so.6 [.] 0x00000000000a4282 0.05% 1 osh libc.so.6 [.] 0x00000000000a429c 0.05% 1 osh libc.so.6 [.] 0x00000000000a43a1 0.05% 1 osh libc.so.6 [.] 0x00000000000a43d7 0.05% 1 osh libc.so.6 [.] 0x00000000000a4461 0.05% 1 osh libc.so.6 [.] 0x00000000000a4602 0.05% 1 osh libc.so.6 [.] 0x00000000000a488a 0.05% 1 osh libc.so.6 [.] 0x00000000000a48b4 0.05% 1 osh libc.so.6 [.] 0x00000000001992f0 0.05% 1 osh libc.so.6 [.] 0x00000000001992fa 0.05% 1 osh libc.so.6 [.] 0x0000000000199a84 0.05% 1 osh libc.so.6 [.] 0x0000000000199d7d 0.05% 1 osh libc.so.6 [.] 0x0000000000199db1 0.05% 1 osh libc.so.6 [.] 0x0000000000199dea 0.05% 1 osh libc.so.6 [.] 0x00000000001a07c7 0.05% 1 osh libc.so.6 [.] 0x00000000001a07eb 0.05% 1 osh libc.so.6 [.] 0x00000000001a07f3 0.05% 1 osh libc.so.6 [.] 0x00000000001a07f8 0.05% 1 osh libc.so.6 [.] 0x00000000001a0826 0.05% 1 osh libc.so.6 [.] 0x00000000001a0857 0.05% 1 osh libc.so.6 [.] 0x00000000001a0861 0.05% 1 osh libc.so.6 [.] 0x00000000001a086c 0.05% 1 osh libc.so.6 [.] 0x00000000001a0a64 0.05% 1 osh libc.so.6 [.] 0x00000000001a0f84 0.05% 1 osh libc.so.6 [.] 0x00000000001a0f90 0.05% 1 osh libc.so.6 [.] 0x00000000001a0fa4 0.05% 1 osh libc.so.6 [.] 0x00000000001a0fad 0.05% 1 osh libreadline.so.8.1 [.] rl_make_bare_keymap 0.05% 1 osh libstdc++.so.6.0.30 [.] operator delete(void*) 0.05% 1 osh libstdc++.so.6.0.30 [.] std::ctype const& std::use_facet >(std::locale const&) 0.05% 1 osh oils-for-unix [.] BigStr::at(int) 0.05% 1 osh oils-for-unix [.] BigStr::find(BigStr*, int, int) 0.05% 1 osh oils-for-unix [.] BigStr::slice(int) 0.05% 1 osh oils-for-unix [.] List* Alloc>() 0.05% 1 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.05% 1 osh oils-for-unix [.] List* Alloc>() 0.05% 1 osh oils-for-unix [.] List* Alloc>() 0.05% 1 osh oils-for-unix [.] List::append(syntax_asdl::IfArm*) 0.05% 1 osh oils-for-unix [.] List* Alloc>() 0.05% 1 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.05% 1 osh oils-for-unix [.] StripAny(BigStr*, StripWhere, int) 0.05% 1 osh oils-for-unix [.] __errno_location@plt 0.05% 1 osh oils-for-unix [.] braces::BraceDetectAll(List*) 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCompoundCommand() 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_Eat(int, BigStr*) 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseForEachLoop(syntax_asdl::Token*) 0.05% 1 osh oils-for-unix [.] consts::RedirDefaultFd(unsigned short) 0.05% 1 osh oils-for-unix [.] flag_util::_CreateStrList(char const**, List*) 0.05% 1 osh oils-for-unix [.] lexer::IsPlusEquals(syntax_asdl::Token*) 0.05% 1 osh oils-for-unix [.] lexer::LineLexer::LookPastSpace(types_asdl::lex_mode_e) 0.05% 1 osh oils-for-unix [.] lexer::TokenVal(syntax_asdl::Token*) 0.05% 1 osh oils-for-unix [.] location::LeftTokenForCompoundWord(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] location::LeftTokenForWord(syntax_asdl::word_t*) 0.05% 1 osh oils-for-unix [.] memcpy@plt 0.05% 1 osh oils-for-unix [.] shell::Main(BigStr*, args::Reader*, Dict*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) 0.05% 1 osh oils-for-unix [.] str_equals(BigStr*, BigStr*) 0.05% 1 osh oils-for-unix [.] syntax_asdl::CompoundWord* Alloc*>(List*&&) 0.05% 1 osh oils-for-unix [.] syntax_asdl::IfArm* Alloc*&, syntax_asdl::Token*&>(syntax_asdl::Token*&, syntax_asdl::condition_t*&, syntax_asdl::Token*&, List*&, syntax_asdl::Token*&) 0.05% 1 osh oils-for-unix [.] syntax_asdl::SingleQuoted* Alloc(syntax_asdl::Token*&, BigStr*&, syntax_asdl::Token*&) 0.05% 1 osh oils-for-unix [.] syntax_asdl::command__CommandList* Alloc*&>(List*&) 0.05% 1 osh oils-for-unix [.] syntax_asdl::redir_loc__Fd* Alloc(int&&) 0.05% 1 osh oils-for-unix [.] word_::DetectShAssignment(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] word_::IsControlFlow(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] word_::TildeDetect2(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] word_compile::EvalSingleQuoted(int, List*) 0.05% 1 osh oils-for-unix [.] word_parse::WordParser::_ParseVarOf() # # (Cannot load tips.txt file, please install perf!) #