XHProf Profile
SymbolCountWall Time (Inclusive)%Wall Time (Exclusive)%
Total151,026,481975,177,245 us100.0%975,177,245 us100.0%
main()1975,177,245 us100.0%425 us0.0%
ArcanistLintWorkflow::run1975,088,094 us100.0%54,351 us0.0%
ArcanistLintEngine::run1973,392,097 us99.8%56,800 us0.0%
ArcanistLintEngine::executeLinters1953,058,194 us97.7%3,028 us0.0%
ArcanistLintEngine::executeLintersOnChunk163953,054,371 us97.7%5,374,833 us0.6%
ArcanistLintEngine::executeDidLintOnPaths1,444704,879,829 us72.3%10,782 us0.0%
ArcanistFutureLinter::didLintPaths264704,767,255 us72.3%274,189 us0.0%
ArcanistXHPASTLinter::resolveFuture3,326629,908,025 us64.6%1,241,578 us0.1%
ArcanistBaseXHPASTLinter::getXHPASTTreeForPath6,652365,391,254 us37.5%238,854 us0.0%
call_user_func186,256272,763,396 us28.0%1,963,064 us0.2%
XHPASTTree::newFromDataAndResolvedExecFuture3,326262,158,835 us26.9%1,770,266 us0.2%
XHPASTTree::__construct3,326240,992,551 us24.7%132,101 us0.0%
ArcanistLintEngine::executeLinterOnPaths1,444239,620,296 us24.6%249,446 us0.0%
AASTTree::__construct3,326239,469,923 us24.6%58,233,371 us6.0%
ArcanistPhutilLibraryLinter::willLintPaths127168,369,719 us17.3%18,625,269 us1.9%
PhutilLibraryMapBuilder::buildFileSymbolMap381132,948,140 us13.6%3,299 us0.0%
PhutilLibraryMapBuilder::analyzeLibrary381132,944,841 us13.6%22,419,396 us2.3%
AASTTree::buildTree817,162106,008,127 us10.9%68,008,269 us7.0%
AASTNode::buildSelectCache1,548,22871,855,213 us7.4%75,185,591 us7.7%
XHPASTTree::newToken2,127,80964,464,705 us6.6%60,573,886 us6.2%
FutureIterator::next7,16963,696,352 us6.5%912,037 us0.1%
ExecFuture::isReady73,33556,058,828 us5.7%1,978,049 us0.2%
AASTNode::getTokens2,581,44554,614,056 us5.6%48,863,348 us5.0%
PhutilLibraryMapBuilder::loadSourceFileMap38148,418,292 us5.0%3,876,185 us0.4%
ArcanistSpellingLinter::lintPath4,44548,092,305 us4.9%4,581,851 us0.5%
FutureIterator::updateWorkingSet14,03846,414,397 us4.8%441,206 us0.0%
proc_open4,35845,602,065 us4.7%45,602,065 us4.7%
XHPASTTree::newNode1,548,22844,527,069 us4.6%40,918,874 us4.2%
ArcanistSpellingLinter::checkExactWord2,609,21543,223,449 us4.4%13,549,431 us1.4%
PhutilLibraryMapBuilder::buildLibraryMap38140,697,892 us4.2%39,800,930 us4.1%
Future::waitForSockets9,01039,598,680 us4.1%492,986 us0.1%
stream_select9,01039,105,680 us4.0%39,105,680 us4.0%
AASTNode::getConcreteString2,077,01537,325,981 us3.8%12,316,312 us1.3%
FileFinder::find38234,167,401 us3.5%4,836,867 us0.5%
ArcanistXHPASTLinter::lintUndeclaredVariables3,32632,755,664 us3.4%7,132,832 us0.7%
AASTNode::selectDescendantsOfTypes732,63830,342,321 us3.1%6,847,784 us0.7%
json_decode3,96430,070,086 us3.1%30,070,086 us3.1%
AASTNode::selectDescendantsOfType681,94929,815,912 us3.1%1,521,820 us0.2%
AASTNode::buildTokenCache3,32625,696,129 us2.6%7,109,259 us0.7%
ArcanistXHPASTLinter::lintNamingConventions3,32625,628,319 us2.6%10,339,676 us1.1%
ArcanistXHPASTLinter::lintEmptyBlockStatements3,32624,524,365 us2.5%6,931,178 us0.7%
idx10,432,45122,831,788 us2.3%22,000,336 us2.3%
preg_match_all2,642,05522,781,957 us2.3%22,781,957 us2.3%
AASTNodeList::newFromTreeAndNodes801,90121,788,728 us2.2%7,945,139 us0.8%
phutil_json_decode3,33119,424,007 us2.0%109,293 us0.0%
ArcanistConfigurationDrivenLintEngine::buildLinters118,618,553 us1.9%853 us0.0%
ArcanistConfigurationDrivenLintEngine::matchPaths1418,515,989 us1.9%1,302,177 us0.1%
pht677,52818,232,578 us1.9%4,251,791 us0.4%
ArcanistFutureLinter::willLintPaths26417,909,927 us1.8%117,529 us0.0%
Future::resolve4,35817,739,009 us1.8%193,198 us0.0%
FutureIterator::addFuture6,86916,262,627 us1.7%275,968 us0.0%
ArcanistXHPASTLinter::lintBraceFormatting3,32615,281,426 us1.6%2,780,829 us0.3%
call_user_func_array719,99714,896,587 us1.5%4,327,221 us0.4%
ArcanistPhutilXHPASTLinter::resolveFuture3,32614,735,924 us1.5%102,547 us0.0%
XHPASTToken::getTypeName6,751,26614,125,296 us1.4%9,105,449 us0.9%
ArcanistXHPASTLinter::lintReusedIteratorReferences3,32614,074,145 us1.4%2,725,810 us0.3%
ArcanistXHPASTLinter::lintImplicitFallthrough3,32613,134,591 us1.3%1,027,823 us0.1%
assert_instances_of802,33012,753,429 us1.3%12,477,107 us1.3%
ExecFuture::resolvex42011,564,823 us1.2%3,530 us0.0%
PhutilLibraryMapBuilder::loadSymbolCache38110,818,868 us1.1%10,913 us0.0%
ArcanistXHPASTLinter::lintParenthesesShouldHugExpressions3,32610,723,397 us1.1%2,650,068 us0.3%
ArcanistLinter::getDeprecatedConfiguration3,39810,376,477 us1.1%61,124 us0.0%
ArcanistConfigurationManager::getConfigFromAnySource3,40410,322,132 us1.1%14,355 us0.0%
ArcanistConfigurationManager::getConfigFromAllSources3,40410,307,755 us1.1%150,219 us0.0%
Filesystem::readablePath478,4599,994,510 us1.0%5,284,533 us0.5%
ArcanistXHPASTLinter::lintSpaceAfterControlStatementKeywords3,3269,910,876 us1.0%5,528,832 us0.6%
ArcanistSettings::getOptions10,1399,708,789 us1.0%737,924 us0.1%
ArcanistXHPASTLinter::lintPHPCompatibility3,3269,552,932 us1.0%2,151,754 us0.2%
PhutilTranslator::translate677,8169,507,882 us1.0%6,070,165 us0.6%
md5_file477,2809,472,859 us1.0%9,472,859 us1.0%
ArcanistXHPASTLinter::lintClosingCallParen3,3269,384,581 us1.0%2,199,963 us0.2%
ArcanistXHPASTLinter::getConcreteVariableString470,8329,313,029 us1.0%1,920,724 us0.2%
PhutilConsole::writeLog419,6139,159,897 us0.9%1,200,549 us0.1%
AASTNode::getChildByIndex1,791,8728,934,416 us0.9%8,934,416 us0.9%
AASTNodeList::valid3,662,8448,811,992 us0.9%7,727,736 us0.8%
PhutilConsole::writeTextMessage420,0398,460,047 us0.9%2,281,739 us0.2%
AASTToken::getNextToken1,904,7728,222,154 us0.8%6,617,864 us0.7%
AASTNodeList::current2,946,7167,701,716 us0.8%6,623,525 us0.7%
ArcanistXHPASTLinter::lintSpaceAroundBinaryOperators3,3267,494,093 us0.8%1,311,950 us0.1%
ArcanistLinter::getData2,695,9097,399,826 us0.8%6,868,196 us0.7%
ArcanistXHPASTLinter::lintStrings3,3267,220,937 us0.7%2,885,611 us0.3%
ArcanistXHPASTLinter::lintLowercaseFunctions3,3267,203,654 us0.7%5,777,022 us0.6%
ArcanistXHPASTLinter::lintUnnecessarySemicolons3,3267,185,703 us0.7%1,837,828 us0.2%
ArcanistWorkingCopyIdentity::getProjectConfig6,7347,101,088 us0.7%65,499 us0.0%
ArcanistSettings::getLegacyName6,7317,010,681 us0.7%45,059 us0.0%
AASTNode::getTypeName2,071,9477,000,855 us0.7%5,522,149 us0.6%
ArcanistSettings::getOption6,7356,951,183 us0.7%116,701 us0.0%
FutureIterator::rewind2656,847,915 us0.7%10,282 us0.0%
ArcanistXHPASTLinter::lintArraySeparator3,3266,731,724 us0.7%295,995 us0.0%
ArcanistPhutilXHPASTLinter::lintUnsafeDynamicString3,3266,563,476 us0.7%57,650 us0.0%
AASTToken::getNonsemanticTokensBefore416,3166,449,613 us0.7%3,497,595 us0.4%
PhutilConsole::writeMessage420,0396,104,716 us0.6%1,868,992 us0.2%
Filesystem::resolvePath622,5086,085,128 us0.6%4,066,475 us0.4%
Filesystem::binaryExists3936,082,732 us0.6%2,859 us0.0%
exec_manual3956,082,601 us0.6%14,732 us0.0%
Filesystem::resolveBinary3936,079,873 us0.6%6,597 us0.0%
AASTToken::isSemantic1,194,2925,938,497 us0.6%3,298,367 us0.3%
ArcanistConfigurationManager::readDefaultConfig3,4045,867,790 us0.6%13,418 us0.0%
ArcanistSettings::getDefaultSettings3,4045,854,372 us0.6%2,938,352 us0.3%
PhutilLibraryMapBuilder::writeSymbolCache3815,805,456 us0.6%581,801 us0.1%