XHProf Profile
| Symbol | Count | Wall Time (Inclusive) | % | Wall Time (Exclusive) | % |
|---|---|---|---|---|---|
| Total | 386,732,737 | 2,119,485,909 us | 100.0% | 2,119,485,909 us | 100.0% |
| main() | 1 | 2,119,485,909 us | 100.0% | 1,076 us | 0.0% |
| ArcanistLintWorkflow::run | 1 | 2,119,371,749 us | 100.0% | 49,758 us | 0.0% |
| ArcanistLintEngine::run | 1 | 2,118,216,998 us | 99.9% | 59,881 us | 0.0% |
| ArcanistLintEngine::executeLinters | 1 | 2,113,733,362 us | 99.7% | 4,829 us | 0.0% |
| ArcanistLintEngine::executeLintersOnChunk | 180 | 2,113,725,894 us | 99.7% | 12,113,906 us | 0.6% |
| ArcanistLintEngine::executeDidLintOnPaths | 1,600 | 1,740,024,264 us | 82.1% | 47,276 us | 0.0% |
| ArcanistFutureLinter::didLintPaths | 292 | 1,739,807,681 us | 82.1% | 368,614 us | 0.0% |
| ArcanistXHPASTLinter::resolveFuture | 3,735 | 1,569,995,274 us | 74.1% | 3,404,054 us | 0.2% |
| AASTNode::selectTokensOfTypes | 78,960 | 757,289,543 us | 35.7% | 465,904,549 us | 22.0% |
| ArcanistKeywordCasingXHPASTLinterRule::process | 3,735 | 622,888,733 us | 29.4% | 1,558,375 us | 0.1% |
| ArcanistBaseXHPASTLinter::getXHPASTTreeForPath | 7,470 | 401,838,735 us | 19.0% | 338,015 us | 0.0% |
| ArcanistLintEngine::executeLinterOnPaths | 1,600 | 352,344,855 us | 16.6% | 379,775 us | 0.0% |
| XHPASTTree::newFromDataAndResolvedExecFuture | 3,735 | 300,816,457 us | 14.2% | 2,235,287 us | 0.1% |
| XHPASTTree::__construct | 3,735 | 275,564,395 us | 13.0% | 205,848 us | 0.0% |
| AASTTree::__construct | 3,735 | 273,891,039 us | 12.9% | 67,492,013 us | 3.2% |
| ArcanistPhutilLibraryLinter::willLintPaths | 141 | 236,165,120 us | 11.1% | 33,006,270 us | 1.6% |
| XHPASTToken::getTypeName | 215,941,892 | 208,704,727 us | 9.8% | 199,960,789 us | 9.4% |
| PhutilLibraryMapBuilder::buildFileSymbolMap | 423 | 171,853,286 us | 8.1% | 4,755 us | 0.0% |
| PhutilLibraryMapBuilder::analyzeLibrary | 423 | 171,848,531 us | 8.1% | 1,576,854 us | 0.1% |
| AASTNode::getTokens | 4,169,101 | 167,137,913 us | 7.9% | 128,902,308 us | 6.1% |
| AASTTree::buildTree | 892,368 | 124,096,367 us | 5.9% | 50,132,979 us | 2.4% |
| AASTNode::selectTokensOfType | 67,755 | 120,701,989 us | 5.7% | 272,714 us | 0.0% |
| FutureIterator::next | 7,983 | 92,764,998 us | 4.4% | 1,271,465 us | 0.1% |
| PhutilLibraryMapBuilder::loadSourceFileMap | 423 | 90,454,598 us | 4.3% | 6,720,142 us | 0.3% |
| ArcanistSpellingLinter::lintPath | 5,001 | 85,052,780 us | 4.0% | 7,723,457 us | 0.4% |
| XHPASTTree::newNode | 1,688,729 | 79,539,682 us | 3.8% | 37,851,376 us | 1.8% |
| ArcanistSpellingLinter::checkExactWord | 2,935,587 | 76,811,582 us | 3.6% | 22,938,736 us | 1.1% |
| Future::waitForSockets | 11,125 | 75,087,271 us | 3.5% | 214,890 us | 0.0% |
| stream_select | 11,125 | 74,872,356 us | 3.5% | 74,872,356 us | 3.5% |
| XHPASTTree::newToken | 2,321,196 | 69,711,424 us | 3.3% | 63,414,752 us | 3.0% |
| AASTNode::getConcreteString | 3,000,540 | 64,269,820 us | 3.0% | 26,667,847 us | 1.3% |
| ExecFuture::isReady | 82,268 | 63,529,148 us | 3.0% | 2,881,523 us | 0.1% |
| AASTNode::buildSelectCache | 1,688,729 | 63,308,996 us | 3.0% | 64,183,017 us | 3.0% |
| FileFinder::find | 424 | 61,983,157 us | 2.9% | 8,817,804 us | 0.4% |
| ArcanistBaseXHPASTLinter::didResolveLinterFutures | 282 | 56,079,010 us | 2.6% | 6,406 us | 0.0% |
| ArcanistBaseXHPASTLinter::releaseSharedFutures | 282 | 56,065,161 us | 2.6% | 56,065,161 us | 2.6% |
| FutureIterator::updateWorkingSet | 15,674 | 50,441,247 us | 2.4% | 470,593 us | 0.0% |
| proc_open | 4,822 | 48,772,800 us | 2.3% | 48,772,800 us | 2.3% |
| phutil_json_decode | 4,384 | 44,016,281 us | 2.1% | 153,532 us | 0.0% |
| json_decode | 4,384 | 43,639,278 us | 2.1% | 43,639,278 us | 2.1% |
| AASTNode::__construct | 1,688,729 | 41,685,983 us | 2.0% | 41,685,983 us | 2.0% |
| preg_match_all | 2,971,312 | 40,136,446 us | 1.9% | 40,136,446 us | 1.9% |
| ArcanistUndeclaredVariableXHPASTLinterRule::process | 3,735 | 39,625,242 us | 1.9% | 9,894,697 us | 0.5% |
| idx | 11,512,740 | 37,079,213 us | 1.7% | 35,361,011 us | 1.7% |
| range | 4,167,162 | 35,712,052 us | 1.7% | 35,712,052 us | 1.7% |
| PhutilLibraryMapBuilder::buildLibraryMap | 423 | 34,556,190 us | 1.6% | 32,559,575 us | 1.5% |
| ArcanistNamingConventionsXHPASTLinterRule::process | 3,735 | 33,970,506 us | 1.6% | 12,481,492 us | 0.6% |
| AASTNode::buildTokenCache | 3,735 | 32,342,248 us | 1.5% | 8,627,161 us | 0.4% |
| AASTNode::selectDescendantsOfTypes | 1,174,809 | 32,041,820 us | 1.5% | 12,039,262 us | 0.6% |
| ArcanistPHPCompatibilityXHPASTLinterRule::process | 3,735 | 31,242,107 us | 1.5% | 3,121,736 us | 0.1% |
| AASTNode::selectDescendantsOfType | 1,111,276 | 31,186,800 us | 1.5% | 3,550,030 us | 0.2% |
| ArcanistReusedAsIteratorXHPASTLinterRule::process | 3,735 | 30,871,489 us | 1.5% | 8,073,590 us | 0.4% |
| ArcanistEmptyStatementXHPASTLinterRule::process | 3,735 | 30,666,421 us | 1.4% | 9,791,030 us | 0.5% |
| ArcanistBinaryExpressionSpacingXHPASTLinterRule::process | 3,735 | 28,106,826 us | 1.3% | 1,428,097 us | 0.1% |
| Future::resolve | 4,822 | 27,664,774 us | 1.3% | 349,854 us | 0.0% |
| ArcanistCallParenthesesXHPASTLinterRule::process | 3,735 | 25,437,400 us | 1.2% | 6,345,744 us | 0.3% |
| PhutilLibraryMapBuilder::writeSymbolCache | 423 | 24,137,684 us | 1.1% | 13,496,708 us | 0.6% |
| ArcanistFutureLinter::willLintPaths | 292 | 22,951,589 us | 1.1% | 128,729 us | 0.0% |
| FutureIterator::addFuture | 7,691 | 21,147,911 us | 1.0% | 323,187 us | 0.0% |
| PhutilLibraryMapBuilder::loadSymbolCache | 423 | 20,866,476 us | 1.0% | 13,403 us | 0.0% |
| md5_file | 597,008 | 20,247,398 us | 1.0% | 20,247,398 us | 1.0% |
| ArcanistPHPCompatibilityXHPASTLinterRule::lintPHP53Features | 3,735 | 20,118,020 us | 0.9% | 984,521 us | 0.0% |
| Filesystem::readablePath | 597,939 | 20,081,170 us | 0.9% | 9,049,053 us | 0.4% |
| ArcanistTodoCommentXHPASTLinterRule::process | 3,735 | 19,725,533 us | 0.9% | 113,118 us | 0.0% |
| ExecFuture::resolvex | 427 | 19,678,743 us | 0.9% | 5,831 us | 0.0% |
| ArcanistPhutilXHPASTLinter::resolveFuture | 3,735 | 19,370,654 us | 0.9% | 179,150 us | 0.0% |
| ArcanistXHPASTLinterRule::getConcreteVariableString | 767,815 | 18,645,965 us | 0.9% | 3,883,427 us | 0.2% |
| call_user_func | 18,826 | 18,599,874 us | 0.9% | 208,037 us | 0.0% |
| ArcanistBraceFormattingXHPASTLinterRule::process | 3,735 | 18,410,262 us | 0.9% | 4,757,499 us | 0.2% |
| ArcanistLogicalOperatorsXHPASTLinterRule::process | 3,735 | 17,428,853 us | 0.8% | 34,102 us | 0.0% |
| AASTNodeList::valid | 5,186,236 | 16,608,217 us | 0.8% | 14,325,931 us | 0.7% |
| AASTNodeList::newFromTreeAndNodes | 1,321,642 | 15,910,905 us | 0.8% | 13,137,228 us | 0.6% |
| ArcanistParenthesesSpacingXHPASTLinterRule::process | 3,735 | 15,832,180 us | 0.7% | 3,345,956 us | 0.2% |
| ArcanistXHPASTLinterRule::getFunctionCalls | 22,410 | 15,226,197 us | 0.7% | 3,722,966 us | 0.2% |
| ArcanistReusedIteratorReferenceXHPASTLinterRule::process | 3,735 | 14,881,985 us | 0.7% | 3,786,622 us | 0.2% |
| Filesystem::resolvePath | 757,845 | 14,407,729 us | 0.7% | 5,059,051 us | 0.2% |
| AASTNode::getChildByIndex | 2,703,786 | 14,292,620 us | 0.7% | 14,292,620 us | 0.7% |
| AASTToken::getNonsemanticTokensBefore | 756,360 | 13,554,148 us | 0.6% | 5,957,288 us | 0.3% |
| ArcanistSelfMemberReferenceXHPASTLinterRule::process | 3,735 | 13,462,927 us | 0.6% | 711,144 us | 0.0% |
| ArcanistObjectOperatorSpacingXHPASTLinterRule::process | 3,735 | 13,130,789 us | 0.6% | 565,297 us | 0.0% |
| AASTNodeList::current | 4,033,208 | 13,058,955 us | 0.6% | 9,643,159 us | 0.5% |
| AASTToken::isSemantic | 1,811,827 | 12,811,132 us | 0.6% | 6,904,797 us | 0.3% |
| ArcanistLinter::getData | 3,033,103 | 12,714,400 us | 0.6% | 10,842,486 us | 0.5% |
| AASTToken::getNextToken | 2,082,236 | 12,518,603 us | 0.6% | 9,276,332 us | 0.4% |
| FutureIterator::rewind | 292 | 12,473,806 us | 0.6% | 12,494 us | 0.0% |
| ArcanistControlStatementSpacingXHPASTLinterRule::process | 3,735 | 11,840,365 us | 0.6% | 7,593,939 us | 0.4% |
| ArcanistArraySeparatorXHPASTLinterRule::process | 3,735 | 11,778,816 us | 0.6% | 447,040 us | 0.0% |
| ArcanistDoubleQuoteXHPASTLinterRule::process | 3,735 | 11,286,948 us | 0.5% | 4,122,348 us | 0.2% |
| ArcanistCommentSpacingXHPASTLinterRule::process | 3,735 | 10,813,216 us | 0.5% | 87,892 us | 0.0% |
| ArcanistLowercaseFunctionsXHPASTLinterRule::process | 3,735 | 10,644,735 us | 0.5% | 8,104,446 us | 0.4% |
| ArcanistLinter::getPaths | 2,521 | 10,537,516 us | 0.5% | 22,670 us | 0.0% |
| ArcanistLinter::filterPaths | 14 | 10,509,388 us | 0.5% | 987,237 us | 0.0% |
| AASTNode::getTypeName | 3,109,672 | 10,301,327 us | 0.5% | 8,219,432 us | 0.4% |
| ArcanistBaseXHPASTLinter::getFunctionCalls | 7,470 | 10,165,755 us | 0.5% | 2,638,865 us | 0.1% |
| AASTNode::getChildOfType | 618,532 | 10,120,078 us | 0.5% | 3,391,168 us | 0.2% |
| ArcanistSemicolonSpacingXHPASTLinterRule::process | 3,735 | 10,098,208 us | 0.5% | 348,579 us | 0.0% |
| AASTNode::getSurroundingNonsemanticTokens | 144,408 | 9,681,965 us | 0.5% | 2,109,119 us | 0.1% |
| ArcanistElseIfUsageXHPASTLinterRule::process | 3,735 | 9,664,430 us | 0.5% | 27,571 us | 0.0% |
| AASTToken::getNonsemanticTokensAfter | 485,458 | 9,393,197 us | 0.4% | 4,373,366 us | 0.2% |
| ArcanistCommentStyleXHPASTLinterRule::process | 3,735 | 8,855,989 us | 0.4% | 48,415 us | 0.0% |