XHProf Profile
| Symbol | Count | Wall Time (Inclusive) | % | Wall Time (Exclusive) | % |
|---|---|---|---|---|---|
| Total | 386,748,236 | 1,381,944,699 us | 100.0% | 1,381,944,699 us | 100.0% |
| main() | 1 | 1,381,944,699 us | 100.0% | 253 us | 0.0% |
| ArcanistLintWorkflow::run | 1 | 1,381,905,418 us | 100.0% | 47,104 us | 0.0% |
| ArcanistLintEngine::run | 1 | 1,380,502,870 us | 99.9% | 56,237 us | 0.0% |
| ArcanistLintEngine::executeLinters | 1 | 1,378,222,223 us | 99.7% | 3,526 us | 0.0% |
| ArcanistLintEngine::executeLintersOnChunk | 180 | 1,378,217,681 us | 99.7% | 7,550,224 us | 0.5% |
| ArcanistLintEngine::executeDidLintOnPaths | 1,600 | 1,146,881,089 us | 83.0% | 12,358 us | 0.0% |
| ArcanistFutureLinter::didLintPaths | 292 | 1,146,753,466 us | 83.0% | 333,874 us | 0.0% |
| ArcanistXHPASTLinter::resolveFuture | 3,735 | 1,009,308,763 us | 73.0% | 2,312,769 us | 0.2% |
| AASTNode::selectTokensOfTypes | 78,960 | 456,473,210 us | 33.0% | 359,011,626 us | 26.0% |
| ArcanistKeywordCasingXHPASTLinterRule::process | 3,735 | 372,306,494 us | 26.9% | 1,146,099 us | 0.1% |
| ArcanistBaseXHPASTLinter::getXHPASTTreeForPath | 7,470 | 295,309,389 us | 21.4% | 277,245 us | 0.0% |
| XHPASTTree::newFromDataAndResolvedExecFuture | 3,735 | 224,252,860 us | 16.2% | 1,492,294 us | 0.1% |
| ArcanistLintEngine::executeLinterOnPaths | 1,600 | 220,032,688 us | 15.9% | 285,438 us | 0.0% |
| XHPASTTree::__construct | 3,735 | 207,229,838 us | 15.0% | 151,013 us | 0.0% |
| AASTTree::__construct | 3,735 | 206,079,052 us | 14.9% | 52,533,075 us | 3.8% |
| ArcanistPhutilLibraryLinter::willLintPaths | 141 | 149,231,623 us | 10.8% | 20,909,757 us | 1.5% |
| PhutilLibraryMapBuilder::buildFileSymbolMap | 423 | 110,858,226 us | 8.0% | 3,333 us | 0.0% |
| PhutilLibraryMapBuilder::analyzeLibrary | 423 | 110,854,893 us | 8.0% | 1,155,474 us | 0.1% |
| AASTNode::getTokens | 4,169,101 | 104,658,104 us | 7.6% | 82,933,357 us | 6.0% |
| AASTTree::buildTree | 892,368 | 94,709,788 us | 6.9% | 38,814,933 us | 2.8% |
| FutureIterator::next | 7,983 | 77,252,426 us | 5.6% | 947,232 us | 0.1% |
| AASTNode::selectTokensOfType | 67,755 | 75,673,773 us | 5.5% | 163,717 us | 0.0% |
| XHPASTTree::newNode | 1,688,729 | 60,162,952 us | 4.4% | 27,778,100 us | 2.0% |
| Future::waitForSockets | 11,128 | 59,919,807 us | 4.3% | 137,304 us | 0.0% |
| stream_select | 11,128 | 59,782,493 us | 4.3% | 59,782,493 us | 4.3% |
| PhutilLibraryMapBuilder::loadSourceFileMap | 423 | 53,440,949 us | 3.9% | 4,417,932 us | 0.3% |
| XHPASTTree::newToken | 2,321,196 | 51,057,560 us | 3.7% | 47,470,255 us | 3.4% |
| ExecFuture::isReady | 82,715 | 49,606,091 us | 3.6% | 1,885,275 us | 0.1% |
| ArcanistSpellingLinter::lintPath | 5,001 | 48,091,012 us | 3.5% | 5,016,886 us | 0.4% |
| AASTNode::buildSelectCache | 1,688,729 | 46,529,918 us | 3.4% | 48,977,410 us | 3.5% |
| ArcanistBaseXHPASTLinter::didResolveLinterFutures | 282 | 45,445,179 us | 3.3% | 4,599 us | 0.0% |
| ArcanistBaseXHPASTLinter::releaseSharedFutures | 282 | 45,436,125 us | 3.3% | 45,436,125 us | 3.3% |
| ArcanistSpellingLinter::checkExactWord | 2,935,587 | 42,809,592 us | 3.1% | 14,198,612 us | 1.0% |
| XHPASTToken::getTypeName | 215,941,892 | 42,106,609 us | 3.0% | 37,692,432 us | 2.7% |
| FutureIterator::updateWorkingSet | 15,674 | 40,372,970 us | 2.9% | 637,799 us | 0.0% |
| AASTNode::getConcreteString | 3,000,540 | 39,543,440 us | 2.9% | 18,923,796 us | 1.4% |
| proc_open | 4,822 | 39,249,501 us | 2.8% | 39,249,501 us | 2.8% |
| FileFinder::find | 424 | 37,894,794 us | 2.7% | 5,791,286 us | 0.4% |
| AASTNode::__construct | 1,688,729 | 32,384,044 us | 2.3% | 32,384,044 us | 2.3% |
| phutil_json_decode | 4,384 | 29,067,673 us | 2.1% | 122,267 us | 0.0% |
| json_decode | 4,384 | 28,831,987 us | 2.1% | 28,831,987 us | 2.1% |
| PhutilLibraryMapBuilder::buildLibraryMap | 423 | 25,513,998 us | 1.8% | 24,806,609 us | 1.8% |
| ArcanistUndeclaredVariableXHPASTLinterRule::process | 3,735 | 24,499,365 us | 1.8% | 7,388,292 us | 0.5% |
| ArcanistNamingConventionsXHPASTLinterRule::process | 3,735 | 23,093,460 us | 1.7% | 9,569,586 us | 0.7% |
| preg_match_all | 2,971,312 | 22,955,901 us | 1.7% | 22,955,901 us | 1.7% |
| range | 4,167,162 | 21,185,408 us | 1.5% | 21,185,408 us | 1.5% |
| AASTNode::selectDescendantsOfTypes | 1,174,809 | 20,753,859 us | 1.5% | 8,365,065 us | 0.6% |
| AASTNode::buildTokenCache | 3,735 | 20,474,866 us | 1.5% | 6,039,276 us | 0.4% |
| idx | 11,512,740 | 19,917,628 us | 1.4% | 19,744,137 us | 1.4% |
| AASTNode::selectDescendantsOfType | 1,111,276 | 19,690,072 us | 1.4% | 2,108,508 us | 0.2% |
| ArcanistPHPCompatibilityXHPASTLinterRule::process | 3,735 | 19,177,946 us | 1.4% | 2,313,926 us | 0.2% |
| ArcanistEmptyStatementXHPASTLinterRule::process | 3,735 | 18,762,555 us | 1.4% | 7,358,767 us | 0.5% |
| ArcanistReusedAsIteratorXHPASTLinterRule::process | 3,735 | 18,618,012 us | 1.3% | 5,905,956 us | 0.4% |
| Future::resolve | 4,822 | 18,278,448 us | 1.3% | 187,308 us | 0.0% |
| ArcanistFutureLinter::willLintPaths | 292 | 17,644,131 us | 1.3% | 99,786 us | 0.0% |
| ArcanistBinaryExpressionSpacingXHPASTLinterRule::process | 3,735 | 17,584,893 us | 1.3% | 1,039,291 us | 0.1% |
| PhutilLibraryMapBuilder::writeSymbolCache | 423 | 17,393,791 us | 1.3% | 10,665,009 us | 0.8% |
| FutureIterator::addFuture | 7,691 | 16,229,423 us | 1.2% | 149,903 us | 0.0% |
| ArcanistCallParenthesesXHPASTLinterRule::process | 3,735 | 16,214,328 us | 1.2% | 4,689,255 us | 0.3% |
| ArcanistPhutilXHPASTLinter::resolveFuture | 3,735 | 13,393,247 us | 1.0% | 114,256 us | 0.0% |
| PhutilLibraryMapBuilder::loadSymbolCache | 423 | 13,191,207 us | 1.0% | 9,641 us | 0.0% |
| call_user_func | 18,826 | 12,918,555 us | 0.9% | 146,860 us | 0.0% |
| ExecFuture::resolvex | 427 | 12,371,866 us | 0.9% | 27,187 us | 0.0% |
| ArcanistPHPCompatibilityXHPASTLinterRule::lintPHP53Features | 3,735 | 12,358,598 us | 0.9% | 773,790 us | 0.1% |
| ArcanistTodoCommentXHPASTLinterRule::process | 3,735 | 12,152,986 us | 0.9% | 84,342 us | 0.0% |
| ArcanistBraceFormattingXHPASTLinterRule::process | 3,735 | 12,141,991 us | 0.9% | 3,730,502 us | 0.3% |
| ArcanistXHPASTLinterRule::getConcreteVariableString | 767,815 | 11,389,449 us | 0.8% | 2,689,139 us | 0.2% |
| md5_file | 597,008 | 11,277,651 us | 0.8% | 11,277,651 us | 0.8% |
| FutureIterator::rewind | 292 | 11,175,140 us | 0.8% | 8,943 us | 0.0% |
| Filesystem::readablePath | 597,939 | 10,955,581 us | 0.8% | 5,970,986 us | 0.4% |
| ArcanistLogicalOperatorsXHPASTLinterRule::process | 3,735 | 10,428,951 us | 0.8% | 24,465 us | 0.0% |
| AASTNodeList::newFromTreeAndNodes | 1,321,642 | 10,171,291 us | 0.7% | 9,236,382 us | 0.7% |
| AASTNode::getChildByIndex | 2,703,786 | 9,903,154 us | 0.7% | 9,903,154 us | 0.7% |
| ArcanistParenthesesSpacingXHPASTLinterRule::process | 3,735 | 9,689,438 us | 0.7% | 2,474,939 us | 0.2% |
| ArcanistXHPASTLinterRule::getFunctionCalls | 22,410 | 9,357,801 us | 0.7% | 2,680,647 us | 0.2% |
| ArcanistReusedIteratorReferenceXHPASTLinterRule::process | 3,735 | 8,978,866 us | 0.6% | 2,794,994 us | 0.2% |
| ArcanistSelfMemberReferenceXHPASTLinterRule::process | 3,735 | 8,737,026 us | 0.6% | 515,289 us | 0.0% |
| ArcanistObjectOperatorSpacingXHPASTLinterRule::process | 3,735 | 8,248,483 us | 0.6% | 391,440 us | 0.0% |
| AASTToken::getNonsemanticTokensBefore | 756,360 | 8,060,295 us | 0.6% | 4,119,656 us | 0.3% |
| AASTNodeList::valid | 5,186,236 | 8,012,017 us | 0.6% | 7,624,424 us | 0.6% |
| ArcanistArraySeparatorXHPASTLinterRule::process | 3,735 | 7,782,840 us | 0.6% | 361,592 us | 0.0% |
| ArcanistControlStatementSpacingXHPASTLinterRule::process | 3,735 | 7,641,029 us | 0.6% | 5,996,983 us | 0.4% |
| AASTToken::isSemantic | 1,811,827 | 7,328,535 us | 0.5% | 4,017,453 us | 0.3% |
| ArcanistBaseXHPASTLinter::getFunctionCalls | 7,470 | 7,168,468 us | 0.5% | 2,015,317 us | 0.1% |
| ArcanistCommentSpacingXHPASTLinterRule::process | 3,735 | 7,053,032 us | 0.5% | 61,640 us | 0.0% |
| AASTNode::getChildOfType | 618,532 | 6,836,149 us | 0.5% | 2,333,094 us | 0.2% |
| Filesystem::resolvePath | 757,845 | 6,835,098 us | 0.5% | 3,075,054 us | 0.2% |
| AASTToken::getNextToken | 2,082,236 | 6,702,279 us | 0.5% | 6,083,621 us | 0.4% |
| ArcanistDoubleQuoteXHPASTLinterRule::process | 3,735 | 6,509,467 us | 0.5% | 3,009,348 us | 0.2% |
| ArcanistLowercaseFunctionsXHPASTLinterRule::process | 3,735 | 6,470,415 us | 0.5% | 5,068,799 us | 0.4% |
| AASTNodeList::current | 4,033,208 | 6,365,415 us | 0.5% | 5,850,945 us | 0.4% |
| ArcanistLinter::getData | 3,033,103 | 6,309,783 us | 0.5% | 6,061,009 us | 0.4% |
| ArcanistSemicolonSpacingXHPASTLinterRule::process | 3,735 | 6,287,484 us | 0.5% | 231,326 us | 0.0% |
| ArcanistPhutilXHPASTLinter::lintArrayCombine | 3,735 | 6,020,118 us | 0.4% | 24,634 us | 0.0% |
| AASTNode::getSurroundingNonsemanticTokens | 144,408 | 5,989,055 us | 0.4% | 1,542,627 us | 0.1% |
| ArcanistElseIfUsageXHPASTLinterRule::process | 3,735 | 5,928,215 us | 0.4% | 18,770 us | 0.0% |
| Filesystem::binaryExists | 437 | 5,871,460 us | 0.4% | 2,869 us | 0.0% |
| exec_manual | 439 | 5,868,782 us | 0.4% | 13,557 us | 0.0% |
| Filesystem::resolveBinary | 437 | 5,868,591 us | 0.4% | 6,351 us | 0.0% |
| AASTNode::getLineNumber | 32,430 | 5,682,759 us | 0.4% | 141,031 us | 0.0% |