# To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 1K of event 'task-clock:ppp' # Event count (approx.): 188000000 # # Overhead Samples Command Shared Object Symbol # ........ ............ ....... .................... ................................................................................................................................................. # 35.53% 668 osh oils-for-unix [.] MarkSweepHeap::MaybeMarkAndPush(RawObject*) 12.18% 229 osh oils-for-unix [.] MarkSweepHeap::TraceChildren() 5.69% 107 osh oils-for-unix [.] MarkSweepHeap::Allocate(unsigned long, int*, int*) 5.32% 100 osh oils-for-unix [.] MarkSweepHeap::Sweep() 2.45% 46 osh oils-for-unix [.] match::OneToken(types_asdl::lex_mode_e, BigStr*, int) 1.60% 30 osh [kernel.kallsyms] [k] 0xffffffffb6eb4b12 1.38% 26 osh oils-for-unix [.] lexer::LineLexer::Read(types_asdl::lex_mode_e) 1.17% 22 osh [kernel.kallsyms] [k] 0xffffffffb7e60127 1.17% 22 osh oils-for-unix [.] alloc::Arena::NewToken(int, int, int, syntax_asdl::SourceLine*) 1.17% 22 osh oils-for-unix [.] cmd_parse::CommandParser::_GetWord() 1.12% 21 osh [kernel.kallsyms] [k] 0xffffffffb7ee4249 0.96% 18 osh oils-for-unix [.] lexer::Lexer::_Read(types_asdl::lex_mode_e) 0.85% 16 osh oils-for-unix [.] word_parse::WordParser::_ReadCompoundWord3(types_asdl::lex_mode_e, int, bool) 0.80% 15 osh oils-for-unix [.] lexer::Lexer::Read(types_asdl::lex_mode_e) 0.74% 14 osh oils-for-unix [.] word_parse::WordParser::_MaybeReadWordPart(bool, types_asdl::lex_mode_e, List*) 0.69% 13 osh oils-for-unix [.] word_parse::WordParser::_ReadWord(types_asdl::lex_mode_e) 0.59% 11 osh oils-for-unix [.] word_::CommandId(syntax_asdl::word_t*) 0.59% 11 osh oils-for-unix [.] word_parse::WordParser::ReadWord(types_asdl::lex_mode_e) 0.53% 10 osh libc.so.6 [.] __getdelim 0.53% 10 osh libc.so.6 [.] malloc 0.53% 10 osh oils-for-unix [.] cmd_parse::CommandParser::ParseSimpleCommand() 0.53% 10 osh oils-for-unix [.] executor::PureExecutor::PopProcessSub(runtime_asdl::StatusArray*) 0.48% 9 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.48% 9 osh oils-for-unix [.] reader::_Reader::GetLine() 0.48% 9 osh oils-for-unix [.] word_::CommandKind(syntax_asdl::word_t*) 0.48% 9 osh oils-for-unix [.] word_parse::WordParser::_GetToken() 0.43% 8 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.43% 8 osh oils-for-unix [.] cmd_parse::CommandParser::_ScanSimpleCommand() 0.32% 6 osh oils-for-unix [.] BigStr::slice(int, int) 0.32% 6 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.32% 6 osh oils-for-unix [.] braces::BraceDetect(syntax_asdl::CompoundWord*) 0.32% 6 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseCommandTerm() 0.32% 6 osh oils-for-unix [.] cmd_parse::_SplitSimpleCommandPrefix(List*) 0.32% 6 osh oils-for-unix [.] consts::GetKind(unsigned short) 0.32% 6 osh oils-for-unix [.] mylib::CFile::readline() 0.32% 6 osh oils-for-unix [.] reader::FileLineReader::_GetLine() 0.32% 6 osh oils-for-unix [.] word_::TildeDetect2(syntax_asdl::CompoundWord*) 0.27% 5 osh oils-for-unix [.] word_::LiteralId(syntax_asdl::word_part_t*) 0.27% 5 osh oils-for-unix [.] word_::StaticEval(syntax_asdl::word_t*) 0.21% 4 osh [kernel.kallsyms] [k] 0xffffffffb8104104 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*>* Alloc*>>() 0.21% 4 osh oils-for-unix [.] List::at(int) 0.21% 4 osh oils-for-unix [.] List* Alloc>() 0.21% 4 osh oils-for-unix [.] List::at(int) 0.21% 4 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.21% 4 osh oils-for-unix [.] braces::BraceDetectAll(List*) 0.21% 4 osh oils-for-unix [.] word_::CheckLiteralId(syntax_asdl::word_part_t*, int) 0.21% 4 osh oils-for-unix [.] word_::DetectShAssignment(syntax_asdl::CompoundWord*) 0.21% 4 osh oils-for-unix [.] word_::TildeDetectAll(List*) 0.21% 4 osh oils-for-unix [.] word_::_EvalWordPart(syntax_asdl::word_part_t*) 0.16% 3 osh libc.so.6 [.] cfree 0.16% 3 osh oils-for-unix [.] List::at(int) 0.16% 3 osh oils-for-unix [.] List::at(int) 0.16% 3 osh oils-for-unix [.] List* Alloc>() 0.16% 3 osh oils-for-unix [.] alloc::Arena::AddLine(BigStr*, int) 0.16% 3 osh oils-for-unix [.] cmd_parse::CommandParser::ParseAndOr() 0.16% 3 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCommand() 0.16% 3 osh oils-for-unix [.] cmd_parse::CommandParser::ParsePipeline() 0.16% 3 osh oils-for-unix [.] cmd_parse::CommandParser::_AtSecondaryKeyword() 0.16% 3 osh oils-for-unix [.] word_parse::WordParser::_ReadLikeDQ(syntax_asdl::Token*, bool, List*) 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb6eb4b67 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb717d9c3 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71a26bb 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71c7aaa 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71ce760 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71ce8dd 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71cfa18 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71cfb31 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb71e4171 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb72137f9 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb722f21e 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb72659a9 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb7268826 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb756145c 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb75ad4b8 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb7ed0989 0.11% 2 osh [kernel.kallsyms] [k] 0xffffffffb7ee48b0 0.11% 2 osh libc.so.6 [.] isupper 0.11% 2 osh libc.so.6 [.] read 0.11% 2 osh libc.so.6 [.] 0x00000000000a2709 0.11% 2 osh libc.so.6 [.] 0x00000000000a2801 0.11% 2 osh libc.so.6 [.] 0x00000000000a4883 0.11% 2 osh libc.so.6 [.] 0x00000000001a07f8 0.11% 2 osh libc.so.6 [.] 0x00000000001a0826 0.11% 2 osh libc.so.6 [.] 0x00000000001a0a64 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*>::at(int) 0.11% 2 osh oils-for-unix [.] List* NewList(std::initializer_list) 0.11% 2 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.11% 2 osh oils-for-unix [.] List::pop() [clone .isra.0] 0.11% 2 osh oils-for-unix [.] List* Alloc>() 0.11% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParseRedirect() 0.11% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_MaybeParseRedirectList(syntax_asdl::command_t*) 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::_ReadHereLines(reader::_Reader*, syntax_asdl::Redir*, BigStr*) 0.11% 2 osh oils-for-unix [.] lexer::LineLexer::LookAheadOne(types_asdl::lex_mode_e) 0.11% 2 osh oils-for-unix [.] memset@plt 0.11% 2 osh oils-for-unix [.] reader::VirtualLineReader::GetLine() 0.11% 2 osh oils-for-unix [.] syntax_asdl::command__CommandList* Alloc*&>(List*&) 0.11% 2 osh oils-for-unix [.] syntax_asdl::loc__Word* Alloc(syntax_asdl::CompoundWord*&&) 0.11% 2 osh oils-for-unix [.] word_parse::WordParser::ReadSingleQuoted(types_asdl::lex_mode_e, syntax_asdl::Token*, List*, bool) 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb6e48ff5 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb6eb4ba3 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb6eb4bb6 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb6eb7e8a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb6f72d76 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb70080a5 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7146d4e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb714cc76 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb716c67f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb716caa1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb717da3c 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71a0315 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71a26a2 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71a26bf 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c794a 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c79a7 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c7a3d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c7a72 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c7ab7 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71c7e7c 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71ca17b 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cb421 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71ce6cc 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71ce82d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71ce83b 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cea05 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cebea 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cfa02 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cfb35 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cfcad 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71cfe8e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d0379 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d054d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d5aa2 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d5c55 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d61e7 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71d62b9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71da01d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71da400 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71e3f16 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71e3f1d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71e4196 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71e41a1 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71e6f4d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f2610 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f4cb3 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f6161 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f714c 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f79c3 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71f79d0 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb71fada2 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb720b2cb 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb72137fb 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb722f222 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7231af0 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb72321d7 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7232515 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb723256d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7232586 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb725d03e 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7263466 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7263477 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7263487 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb726349c 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7264925 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb726492d 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7265999 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb72659d9 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb72659e8 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7265a12 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7265a20 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb726889f 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb726a0e8 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb726a433 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb72820b6 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7319da8 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7561446 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7561451 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7561489 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7e40785 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7e40865 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7e40994 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7e5c648 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb7edd441 0.05% 1 osh [kernel.kallsyms] [k] 0xffffffffb8104109 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b734 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000c14e 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000c19b 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000001133d 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000011429 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000001152f 0.05% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000018426 0.05% 1 osh libc.so.6 [.] _IO_switch_to_get_mode 0.05% 1 osh libc.so.6 [.] __mmap 0.05% 1 osh libc.so.6 [.] __strxfrm_l 0.05% 1 osh libc.so.6 [.] fclose 0.05% 1 osh libc.so.6 [.] getenv 0.05% 1 osh libc.so.6 [.] 0x0000000000036638 0.05% 1 osh libc.so.6 [.] 0x00000000000a174d 0.05% 1 osh libc.so.6 [.] 0x00000000000a18a2 0.05% 1 osh libc.so.6 [.] 0x00000000000a18d6 0.05% 1 osh libc.so.6 [.] 0x00000000000a26a0 0.05% 1 osh libc.so.6 [.] 0x00000000000a26be 0.05% 1 osh libc.so.6 [.] 0x00000000000a26f5 0.05% 1 osh libc.so.6 [.] 0x00000000000a27ed 0.05% 1 osh libc.so.6 [.] 0x00000000000a280a 0.05% 1 osh libc.so.6 [.] 0x00000000000a2814 0.05% 1 osh libc.so.6 [.] 0x00000000000a291c 0.05% 1 osh libc.so.6 [.] 0x00000000000a39b3 0.05% 1 osh libc.so.6 [.] 0x00000000000a3c07 0.05% 1 osh libc.so.6 [.] 0x00000000000a3cfd 0.05% 1 osh libc.so.6 [.] 0x00000000000a3f09 0.05% 1 osh libc.so.6 [.] 0x00000000000a425e 0.05% 1 osh libc.so.6 [.] 0x00000000000a4282 0.05% 1 osh libc.so.6 [.] 0x00000000000a4463 0.05% 1 osh libc.so.6 [.] 0x00000000000a4499 0.05% 1 osh libc.so.6 [.] 0x00000000000a449d 0.05% 1 osh libc.so.6 [.] 0x00000000000a4b6c 0.05% 1 osh libc.so.6 [.] 0x00000000001992d2 0.05% 1 osh libc.so.6 [.] 0x00000000001992f0 0.05% 1 osh libc.so.6 [.] 0x00000000001993b2 0.05% 1 osh libc.so.6 [.] 0x00000000001993bf 0.05% 1 osh libc.so.6 [.] 0x00000000001993da 0.05% 1 osh libc.so.6 [.] 0x0000000000199d83 0.05% 1 osh libc.so.6 [.] 0x0000000000199de5 0.05% 1 osh libc.so.6 [.] 0x0000000000199de8 0.05% 1 osh libc.so.6 [.] 0x0000000000199dea 0.05% 1 osh libc.so.6 [.] 0x00000000001a0845 0.05% 1 osh libc.so.6 [.] 0x00000000001a0f80 0.05% 1 osh libc.so.6 [.] 0x00000000001a0f90 0.05% 1 osh libc.so.6 [.] 0x00000000001a0f94 0.05% 1 osh libc.so.6 [.] 0x00000000001a0fad 0.05% 1 osh libc.so.6 [.] 0x00000000001a104a 0.05% 1 osh oils-for-unix [.] BigStr::endswith(BigStr*) 0.05% 1 osh oils-for-unix [.] BigStr::isupper() 0.05% 1 osh oils-for-unix [.] BigStr::slice(int) 0.05% 1 osh oils-for-unix [.] Dict::find_kv_index(BigStr*) const 0.05% 1 osh oils-for-unix [.] Dict* Alloc>() 0.05% 1 osh oils-for-unix [.] Dict::set(int, BigStr*) 0.05% 1 osh oils-for-unix [.] List::append(syntax_asdl::CaseArm*) 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::SourceLine*) 0.05% 1 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.05% 1 osh oils-for-unix [.] List::at(int) 0.05% 1 osh oils-for-unix [.] __getdelim@plt 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCompoundCommand() 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseIf() 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_Eat(int, BigStr*) 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_MaybeExpandAliases(List*) 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseAndOr() 0.05% 1 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseForEachLoop(syntax_asdl::Token*) 0.05% 1 osh oils-for-unix [.] cmd_parse::_ParseHereDocBody(parse_lib::ParseContext*, syntax_asdl::Redir*, reader::_Reader*, alloc::Arena*) 0.05% 1 osh oils-for-unix [.] lexer::LineLexer::GetEofToken(int) 0.05% 1 osh oils-for-unix [.] lexer::LineLexer::LookPastSpace(types_asdl::lex_mode_e) 0.05% 1 osh oils-for-unix [.] location::LeftTokenForCompoundWord(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] location::LeftTokenForWordPart(syntax_asdl::word_part_t*) 0.05% 1 osh oils-for-unix [.] parse_lib::_BaseTrail::SetLatestWords(List*, List*) 0.05% 1 osh oils-for-unix [.] state::Mem::SetNamed(value_asdl::LeftName*, value_asdl::value_t*, runtime_asdl::scope_e, int) 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 [.] word_::TildeDetect(syntax_asdl::word_t*) 0.05% 1 osh oils-for-unix [.] word_::TildeDetectAssign(syntax_asdl::CompoundWord*) 0.05% 1 osh oils-for-unix [.] word_parse::WordParser::LookAheadFuncParens() 0.05% 1 osh oils-for-unix [.] word_parse::WordParser::_ParseVarOf() 0.05% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadDoubleQuoted(syntax_asdl::Token*) 0.05% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadUnquotedLeftParts(syntax_asdl::BoolParamBox*) # # (Cannot load tips.txt file, please install perf!) #