XHProf Profile
SymbolCountWall Time (Inclusive)%Wall Time (Exclusive)%
Total386,732,7372,119,485,909 us100.0%2,119,485,909 us100.0%
main()12,119,485,909 us100.0%1,076 us0.0%
ArcanistLintWorkflow::run12,119,371,749 us100.0%49,758 us0.0%
ArcanistLintEngine::run12,118,216,998 us99.9%59,881 us0.0%
ArcanistLintEngine::executeLinters12,113,733,362 us99.7%4,829 us0.0%
ArcanistLintEngine::executeLintersOnChunk1802,113,725,894 us99.7%12,113,906 us0.6%
ArcanistLintEngine::executeDidLintOnPaths1,6001,740,024,264 us82.1%47,276 us0.0%
ArcanistFutureLinter::didLintPaths2921,739,807,681 us82.1%368,614 us0.0%
ArcanistXHPASTLinter::resolveFuture3,7351,569,995,274 us74.1%3,404,054 us0.2%
AASTNode::selectTokensOfTypes78,960757,289,543 us35.7%465,904,549 us22.0%
ArcanistKeywordCasingXHPASTLinterRule::process3,735622,888,733 us29.4%1,558,375 us0.1%
ArcanistBaseXHPASTLinter::getXHPASTTreeForPath7,470401,838,735 us19.0%338,015 us0.0%
ArcanistLintEngine::executeLinterOnPaths1,600352,344,855 us16.6%379,775 us0.0%
XHPASTTree::newFromDataAndResolvedExecFuture3,735300,816,457 us14.2%2,235,287 us0.1%
XHPASTTree::__construct3,735275,564,395 us13.0%205,848 us0.0%
AASTTree::__construct3,735273,891,039 us12.9%67,492,013 us3.2%
ArcanistPhutilLibraryLinter::willLintPaths141236,165,120 us11.1%33,006,270 us1.6%
XHPASTToken::getTypeName215,941,892208,704,727 us9.8%199,960,789 us9.4%
PhutilLibraryMapBuilder::buildFileSymbolMap423171,853,286 us8.1%4,755 us0.0%
PhutilLibraryMapBuilder::analyzeLibrary423171,848,531 us8.1%1,576,854 us0.1%
AASTNode::getTokens4,169,101167,137,913 us7.9%128,902,308 us6.1%
AASTTree::buildTree892,368124,096,367 us5.9%50,132,979 us2.4%
AASTNode::selectTokensOfType67,755120,701,989 us5.7%272,714 us0.0%
FutureIterator::next7,98392,764,998 us4.4%1,271,465 us0.1%
PhutilLibraryMapBuilder::loadSourceFileMap42390,454,598 us4.3%6,720,142 us0.3%
ArcanistSpellingLinter::lintPath5,00185,052,780 us4.0%7,723,457 us0.4%
XHPASTTree::newNode1,688,72979,539,682 us3.8%37,851,376 us1.8%
ArcanistSpellingLinter::checkExactWord2,935,58776,811,582 us3.6%22,938,736 us1.1%
Future::waitForSockets11,12575,087,271 us3.5%214,890 us0.0%
stream_select11,12574,872,356 us3.5%74,872,356 us3.5%
XHPASTTree::newToken2,321,19669,711,424 us3.3%63,414,752 us3.0%
AASTNode::getConcreteString3,000,54064,269,820 us3.0%26,667,847 us1.3%
ExecFuture::isReady82,26863,529,148 us3.0%2,881,523 us0.1%
AASTNode::buildSelectCache1,688,72963,308,996 us3.0%64,183,017 us3.0%
FileFinder::find42461,983,157 us2.9%8,817,804 us0.4%
ArcanistBaseXHPASTLinter::didResolveLinterFutures28256,079,010 us2.6%6,406 us0.0%
ArcanistBaseXHPASTLinter::releaseSharedFutures28256,065,161 us2.6%56,065,161 us2.6%
FutureIterator::updateWorkingSet15,67450,441,247 us2.4%470,593 us0.0%
proc_open4,82248,772,800 us2.3%48,772,800 us2.3%
phutil_json_decode4,38444,016,281 us2.1%153,532 us0.0%
json_decode4,38443,639,278 us2.1%43,639,278 us2.1%
AASTNode::__construct1,688,72941,685,983 us2.0%41,685,983 us2.0%
preg_match_all2,971,31240,136,446 us1.9%40,136,446 us1.9%
ArcanistUndeclaredVariableXHPASTLinterRule::process3,73539,625,242 us1.9%9,894,697 us0.5%
idx11,512,74037,079,213 us1.7%35,361,011 us1.7%
range4,167,16235,712,052 us1.7%35,712,052 us1.7%
PhutilLibraryMapBuilder::buildLibraryMap42334,556,190 us1.6%32,559,575 us1.5%
ArcanistNamingConventionsXHPASTLinterRule::process3,73533,970,506 us1.6%12,481,492 us0.6%
AASTNode::buildTokenCache3,73532,342,248 us1.5%8,627,161 us0.4%
AASTNode::selectDescendantsOfTypes1,174,80932,041,820 us1.5%12,039,262 us0.6%
ArcanistPHPCompatibilityXHPASTLinterRule::process3,73531,242,107 us1.5%3,121,736 us0.1%
AASTNode::selectDescendantsOfType1,111,27631,186,800 us1.5%3,550,030 us0.2%
ArcanistReusedAsIteratorXHPASTLinterRule::process3,73530,871,489 us1.5%8,073,590 us0.4%
ArcanistEmptyStatementXHPASTLinterRule::process3,73530,666,421 us1.4%9,791,030 us0.5%
ArcanistBinaryExpressionSpacingXHPASTLinterRule::process3,73528,106,826 us1.3%1,428,097 us0.1%
Future::resolve4,82227,664,774 us1.3%349,854 us0.0%
ArcanistCallParenthesesXHPASTLinterRule::process3,73525,437,400 us1.2%6,345,744 us0.3%
PhutilLibraryMapBuilder::writeSymbolCache42324,137,684 us1.1%13,496,708 us0.6%
ArcanistFutureLinter::willLintPaths29222,951,589 us1.1%128,729 us0.0%
FutureIterator::addFuture7,69121,147,911 us1.0%323,187 us0.0%
PhutilLibraryMapBuilder::loadSymbolCache42320,866,476 us1.0%13,403 us0.0%
md5_file597,00820,247,398 us1.0%20,247,398 us1.0%
ArcanistPHPCompatibilityXHPASTLinterRule::lintPHP53Features3,73520,118,020 us0.9%984,521 us0.0%
Filesystem::readablePath597,93920,081,170 us0.9%9,049,053 us0.4%
ArcanistTodoCommentXHPASTLinterRule::process3,73519,725,533 us0.9%113,118 us0.0%
ExecFuture::resolvex42719,678,743 us0.9%5,831 us0.0%
ArcanistPhutilXHPASTLinter::resolveFuture3,73519,370,654 us0.9%179,150 us0.0%
ArcanistXHPASTLinterRule::getConcreteVariableString767,81518,645,965 us0.9%3,883,427 us0.2%
call_user_func18,82618,599,874 us0.9%208,037 us0.0%
ArcanistBraceFormattingXHPASTLinterRule::process3,73518,410,262 us0.9%4,757,499 us0.2%
ArcanistLogicalOperatorsXHPASTLinterRule::process3,73517,428,853 us0.8%34,102 us0.0%
AASTNodeList::valid5,186,23616,608,217 us0.8%14,325,931 us0.7%
AASTNodeList::newFromTreeAndNodes1,321,64215,910,905 us0.8%13,137,228 us0.6%
ArcanistParenthesesSpacingXHPASTLinterRule::process3,73515,832,180 us0.7%3,345,956 us0.2%
ArcanistXHPASTLinterRule::getFunctionCalls22,41015,226,197 us0.7%3,722,966 us0.2%
ArcanistReusedIteratorReferenceXHPASTLinterRule::process3,73514,881,985 us0.7%3,786,622 us0.2%
Filesystem::resolvePath757,84514,407,729 us0.7%5,059,051 us0.2%
AASTNode::getChildByIndex2,703,78614,292,620 us0.7%14,292,620 us0.7%
AASTToken::getNonsemanticTokensBefore756,36013,554,148 us0.6%5,957,288 us0.3%
ArcanistSelfMemberReferenceXHPASTLinterRule::process3,73513,462,927 us0.6%711,144 us0.0%
ArcanistObjectOperatorSpacingXHPASTLinterRule::process3,73513,130,789 us0.6%565,297 us0.0%
AASTNodeList::current4,033,20813,058,955 us0.6%9,643,159 us0.5%
AASTToken::isSemantic1,811,82712,811,132 us0.6%6,904,797 us0.3%
ArcanistLinter::getData3,033,10312,714,400 us0.6%10,842,486 us0.5%
AASTToken::getNextToken2,082,23612,518,603 us0.6%9,276,332 us0.4%
FutureIterator::rewind29212,473,806 us0.6%12,494 us0.0%
ArcanistControlStatementSpacingXHPASTLinterRule::process3,73511,840,365 us0.6%7,593,939 us0.4%
ArcanistArraySeparatorXHPASTLinterRule::process3,73511,778,816 us0.6%447,040 us0.0%
ArcanistDoubleQuoteXHPASTLinterRule::process3,73511,286,948 us0.5%4,122,348 us0.2%
ArcanistCommentSpacingXHPASTLinterRule::process3,73510,813,216 us0.5%87,892 us0.0%
ArcanistLowercaseFunctionsXHPASTLinterRule::process3,73510,644,735 us0.5%8,104,446 us0.4%
ArcanistLinter::getPaths2,52110,537,516 us0.5%22,670 us0.0%
ArcanistLinter::filterPaths1410,509,388 us0.5%987,237 us0.0%
AASTNode::getTypeName3,109,67210,301,327 us0.5%8,219,432 us0.4%
ArcanistBaseXHPASTLinter::getFunctionCalls7,47010,165,755 us0.5%2,638,865 us0.1%
AASTNode::getChildOfType618,53210,120,078 us0.5%3,391,168 us0.2%
ArcanistSemicolonSpacingXHPASTLinterRule::process3,73510,098,208 us0.5%348,579 us0.0%
AASTNode::getSurroundingNonsemanticTokens144,4089,681,965 us0.5%2,109,119 us0.1%
ArcanistElseIfUsageXHPASTLinterRule::process3,7359,664,430 us0.5%27,571 us0.0%
AASTToken::getNonsemanticTokensAfter485,4589,393,197 us0.4%4,373,366 us0.2%
ArcanistCommentStyleXHPASTLinterRule::process3,7358,855,989 us0.4%48,415 us0.0%