| Symbol | Count | Wall Time | % |
|---|
| Metrics for this Call | | | |
| strlen | 4,091,366 | 1,272,907 us | 100.0% |
| Parent Calls | | | |
| ArcanistConfigurationManager::getUserConfigurationFileLocation | 1 | 0 us | |
| Filesystem::walkToRoot | 37 | 13 us | |
| FileList::contains | 7 | 2 us | |
| ArcanistWorkingCopyIdentity::readLocalArcConfig | 1 | 0 us | |
| Filesystem::resolvePath | 86 | 99 us | |
| FileFinder::getFiles | 1 | 0 us | |
| PhutilURI::setPath | 438 | 529 us | |
| PhutilURI::__toString | 1,607 | 1,287 us | |
| xsprintf | 24,951 | 20,786 us | |
| LinesOfALarge::setDelimiter | 5 | 9 us | |
| LinesOfALarge::next | 5,638 | 2,407 us | |
| ExecFuture::readStdout | 385 | 79 us | |
| LinesOfALargeExecFuture::readMore | 379 | 95 us | |
| ExecFuture::isReady | 3,482 | 31,347 us | |
| ExecFuture::readAndDiscard | 8,590 | 23,868 us | |
| PhutilJSON::encodeFormattedObject | 4 | 0 us | |
| PhutilJSON::encodeFormattedObject@1 | 8 | 0 us | |
| PhabricatorUIConfigOptions::getOptions | 12 | 0 us | |
| PhabricatorLiskDAO::getStorageNamespace | 9,694 | 10,154 us | |
| PhutilOpaqueEnvelope::mask | 3,006 | 2,822 us | |
| PhabricatorLiskDAO::getTableName | 12,252 | 15,350 us | |
| xsprintf_query | 56,326 | 85,975 us | |
| PhabricatorEnv::initializeCommonEnvironment | 1 | 0 us | |
| PhutilClassMapQuery::loadMap | 132 | 187 us | |
| Filesystem::readRandomBytes | 1,002 | 1,377 us | |
| xsprintf_command | 1,169 | 1,987 us | |
| FileFinder::find | 3 | 4 us | |
| Filesystem::readablePath | 7,696 | 1,040 us | |
| ExecFuture::resolveJSON | 45 | 61 us | |
| PhutilTestCase::endCoverage | 2,009,344 | 774,160 us | |
| ArcanistUnitConsoleRenderer::renderUnitResult | 287 | 143 us | |
| ArcanistDiffParser::parseDiff | 126 | 109 us | |
| phutil_split_lines | 303 | 4,891 us | |
| ArcanistDiffParser::nextNonemptyLine | 68 | 31 us | |
| ArcanistDiffParser::parseChangeset | 2,777 | 937 us | |
| PhabricatorApplicationQuery::loadPage | 192 | 410 us | |
| ArcanistDiffHunk::getChangedLines | 2,705 | 632 us | |
| DifferentialChangesetParser::detectCopiedCode | 1,419 | 432 us | |
| DifferentialHunk::makeContent | 64 | 30 us | |
| DiffusionRequest::generateDiffusionURI | 48 | 16 us | |
| DiffusionRequest::parseRequestBlob | 27 | 14 us | |
| HeraldField::getFieldConstant | 42 | 80 us | |
| AlmanacNames::validateServiceOrDeviceName | 28 | 28 us | |
| AphrontRedirectResponse::getURIForRedirect | 14 | 43 us | |
| PhabricatorEnv::isValidLocalURIForLink | 16 | 31 us | |
| PhabricatorEnv::requireValidRemoteURIForLink | 61 | 132 us | |
| PhutilLexer::getTokens | 2,531 | 4,771 us | |
| PhutilSimpleOptions::parse | 1 | 1 us | |
| PhutilSimpleOptions::normalizeKey | 1 | 1 us | |
| PhabricatorUser::validateUsername | 133 | 349 us | |
| PhabricatorUserEmail::isValidAddress | 295 | 756 us | |
| PhabricatorQuery::flattenSubclause | 4,986 | 4,621 us | |
| PhabricatorUser::save | 119 | 315 us | |
| PhabricatorTypeaheadDatasource::tokenizeString | 142 | 148 us | |
| PhabricatorApplicationTransactionEditor::validateIsEmptyTextField | 40 | 83 us | |
| PhabricatorPolicyQuery::isObjectPolicy | 1,848 | 3,736 us | |
| PhabricatorPeopleQuery::buildWhereClauseParts | 72 | 169 us | |
| PhabricatorFile::writeToEngine | 30 | 49 us | |
| PhabricatorFile::buildFromFileData | 17 | 14 us | |
| PhutilRemarkupEngine::isEmptyBlock | 20 | 7 us | |
| PhutilRemarkupDefaultBlockRule::markupText | 20 | 4,541 us | |
| PhabricatorFile::getCDNURI | 18 | 37 us | |
| PhabricatorApplicationTransaction::hasComment | 4 | 4 us | |
| xsprintf@1 | 468 | 520 us | |
| xsprintf_command@1 | 468 | 1,039 us | |
| DifferentialCommitMessageParser::parseCorpus | 13 | 1 us | |
| PhutilUTF8StringTruncator::setTerminator | 29 | 77 us | |
| phutil_utf8v | 506 | 488 us | |
| PhutilUTF8StringTruncator::truncateString | 277 | 43 us | |
| DifferentialChangesetParser::getHighlightFuture | 28 | 28 us | |
| DifferentialChangesetParser::calculateGapsMaskAndDepths | 152 | 2 us | |
| ArcanistDiffUtils::generateIntralineDiff | 40 | 51 us | |
| ArcanistDiffUtils::computeIntralineEdits | 16 | 12 us | |
| ArcanistDiffUtils::applyIntralineDiff | 32 | 35 us | |
| PhutilRope::append | 10 | 22 us | |
| PhutilChannel::isReadBufferEmpty | 5 | 15 us | |
| PhutilChannel::update | 29 | 63 us | |
| phutil_fwrite_nonblocking_stream | 5 | 17 us | |
| PhutilRope::removeBytesFromHead | 5 | 15 us | |
| PhutilProtocolChannel::read | 14 | 38 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::readProtocolBytes | 4 | 13 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::decodeStream | 4 | 8 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::newDataMessage | 3 | 8 us | |
| DiffusionSubversionWireProtocol::writeData | 52 | 40 us | |
| DiffusionSubversionWireProtocol::serializeStruct | 1 | 3 us | |
| PhabricatorCaches::maybeDeflateData | 19 | 37 us | |
| HarbormasterBuildPlanQuery::buildWhereClauseParts | 20 | 24 us | |
| PhabricatorGlobalLock::newLock | 7 | 6 us | |
| HarbormasterBuildStep::getName | 2 | 3 us | |
| HeraldObjectTranscript::truncateValue | 5 | 2 us | |
| HeraldObjectTranscript::truncateValue@1 | 4 | 3 us | |
| PhabricatorLiskDAO::chunkSQL | 139 | 142 us | |
| ManiphestTaskStatus::isValidStatusConstant | 40 | 106 us | |
| ManiphestTaskQuery::buildFullTextWhereClause | 38 | 121 us | |
| PhabricatorQuery::flattenSubclause@1 | 38 | 72 us | |
| PhabricatorCursorPagedPolicyAwareQuery::isCustomFieldOrderKey | 24 | 76 us | |
| AphrontRequest::getPrefixedCookieName | 7 | 22 us | |
| PhabricatorAuthStartController::handleRequest | 7 | 15 us | |
| PHUIInfoView::render | 7 | 18 us | |
| PhabricatorStandardPageView::getTitle | 18 | 43 us | |
| PhabricatorBarePageView::getHead | 9 | 17 us | |
| DarkConsoleCore::sanitizeForJSON@3 | 450 | 1,070 us | |
| DarkConsoleCore::sanitizeForJSON@2 | 1,098 | 1,529 us | |
| DarkConsoleCore::sanitizeForJSON@1 | 54 | 107 us | |
| DarkConsoleCore::sanitizeForJSON@4 | 54 | 98 us | |
| PhabricatorUser::getFullName | 34 | 91 us | |
| PhutilDocblockParser::parse | 1,786 | 1,439 us | |
| PhabricatorEnv::requireValidRemoteURIForFetch | 16 | 16 us | |
| PhabricatorPasswordHasher::getPasswordHashForStorage | 1 | 2 us | |
| PhabricatorMailReceiver::stripMailboxPrefix | 142 | 147 us | |
| PhabricatorMetaMTAEmailBodyParser::stripCommands | 214 | 18 us | |
| PhabricatorMetaMTAMailBody::addRawSection | 2 | 7 us | |
| PhabricatorMetaMTAMail::sendNow | 7 | 17 us | |
| PhabricatorMailReceiver::loadSender | 1 | 3 us | |
| PhabricatorMetaMTAReceivedMail::sendExceptionMail | 8 | 16 us | |
| PhutilQueryStringParser::parseQueryStringToPairList | 61 | 133 us | |
| PhutilQueryStringParser::parseQueryString | 39 | 78 us | |
| PhutilContextFreeGrammar::applyRules@2 | 467 | 609 us | |
| PhutilContextFreeGrammar::applyRules@1 | 325 | 410 us | |
| PhutilContextFreeGrammar::applyRules@3 | 713 | 900 us | |
| PhutilContextFreeGrammar::applyRules | 155 | 204 us | |
| PhabricatorOwnersPackageTestCase::testFindLongestPathsPerPackage | 3 | 5 us | |
| array_map | 3 | 2 us | |
| PhabricatorPasswordHasher::getAllHashers | 6 | 6 us | |
| PhabricatorLocalDiskFileStorageEngine::canWriteFiles | 4 | 6 us | |
| PhabricatorS3FileStorageEngine::canWriteFiles | 4 | 7 us | |
| PhabricatorRepository::getSubversionPathURI | 141 | 184 us | |
| PhabricatorRepository::getSubversionBaseURI | 20 | 30 us | |
| PassphraseCredentialQuery::buildWhereClauseParts | 2 | 2 us | |
| PhabricatorSpacesNamespaceEditor::getCustomTransactionOldValue | 7 | 14 us | |
| PhabricatorTOTPAuthFactor::base32Decode | 4 | 1 us | |
| phutil_parse_bytes | 12 | 1 us | |
| PhabricatorRepositoryQuery::buildWhereClauseParts | 58 | 98 us | |
| PhabricatorMercurialGraphStream::parseUntil | 8 | 16 us | |
| PhabricatorMercurialGraphStream::parseParents | 8 | 19 us | |
| ArcanistMercurialParser::parseMercurialStatusDetails | 7 | 6 us | |
| ArcanistMercurialParser::parseMercurialLog | 7 | 6 us | |
| PhabricatorRepositorySvnCommitChangeParserWorker::parseCommitChanges | 28 | 58 us | |
| PhabricatorRepositorySvnCommitChangeParserWorker::lookupPathFileTypes | 12 | 18 us | |
| Filesystem::remove | 16 | 19 us | |
| CommandException::summarize | 8 | 2,341 us | |
| DiffusionLowLevelGitRefQuery::executeQuery | 6 | 7 us | |
| PhabricatorGitGraphStream::parseUntil | 8 | 2 us | |
| PhabricatorRepositoryGitCommitChangeParserWorker::parseCommitChanges | 22 | 21 us | |
| ArcanistUnitTestResult::mergeCoverage | 1,918,044 | 258,700 us | |
| Child Calls | | | |
| PhutilSafeHTML::__toString | 48 | 8,634 us | 0.7% |
| PhutilCommandString::__toString | 2 | 2,327 us | 0.2% |