| Symbol | Count | Wall Time | % |
|---|
| Metrics for this Call | | | |
| strlen | 4,598,252 | 534,805 us | 100.0% |
| Parent Calls | | | |
| ArcanistConfigurationManager::getUserConfigurationFileLocation | 1 | 1 us | |
| FileList::contains | 7 | 5 us | |
| Filesystem::walkToRoot | 37 | 2 us | |
| ArcanistWorkingCopyIdentity::readLocalArcConfig | 1 | 1 us | |
| Filesystem::resolvePath | 86 | 28 us | |
| FileFinder::getFiles | 1 | 0 us | |
| PhutilClassMapQuery::loadMap | 242 | 125 us | |
| PhutilURI::setPath | 442 | 227 us | |
| PhutilURI::__toString | 1,616 | 360 us | |
| xsprintf | 24,934 | 13,241 us | |
| LinesOfALarge::setDelimiter | 5 | 8 us | |
| LinesOfALarge::next | 6,268 | 199 us | |
| ExecFuture::readStdout | 447 | 5 us | |
| LinesOfALargeExecFuture::readMore | 441 | 22 us | |
| ExecFuture::isReady | 2,644 | 1,213 us | |
| ExecFuture::readAndDiscard | 6,542 | 1,375 us | |
| PhutilLexer::getTokens | 7,497 | 3,643 us | |
| PhutilJSON::encodeFormattedObject | 5 | 0 us | |
| PhutilJSON::encodeFormattedObject@1 | 11 | 10 us | |
| PhabricatorUIConfigOptions::getOptions | 12 | 0 us | |
| PhabricatorLiskDAO::getStorageNamespace | 9,744 | 5,306 us | |
| PhutilOpaqueEnvelope::mask | 2,821 | 1,608 us | |
| PhabricatorLiskDAO::getTableName | 12,292 | 7,395 us | |
| xsprintf_query | 56,740 | 60,603 us | |
| PhabricatorEnv::initializeCommonEnvironment | 1 | 1 us | |
| Filesystem::readRandomBytes | 1,002 | 361 us | |
| xsprintf_command | 893 | 1,317 us | |
| PhutilTestCase::endCoverage | 2,273,700 | 171,670 us | |
| FileFinder::find | 3 | 2 us | |
| Filesystem::readablePath | 8,404 | 1,356 us | |
| ArcanistDiffParser::parseDiff | 126 | 74 us | |
| phutil_split_lines | 303 | 7,525 us | |
| ArcanistDiffParser::nextNonemptyLine | 68 | 19 us | |
| ArcanistDiffParser::parseChangeset | 2,777 | 324 us | |
| PhabricatorApplicationQuery::loadPage | 191 | 224 us | |
| ArcanistDiffHunk::getChangedLines | 2,705 | 168 us | |
| DifferentialChangesetParser::detectCopiedCode | 1,419 | 62 us | |
| DifferentialHunk::makeContent | 64 | 28 us | |
| DiffusionRequest::generateDiffusionURI | 48 | 18 us | |
| DiffusionRequest::parseRequestBlob | 27 | 15 us | |
| Phobject::getPhobjectClassConstant | 92 | 91 us | |
| AlmanacNames::validateServiceOrDeviceName | 28 | 38 us | |
| AphrontRedirectResponse::getURIForRedirect | 14 | 14 us | |
| PhabricatorEnv::isValidLocalURIForLink | 16 | 16 us | |
| PhabricatorEnv::requireValidRemoteURIForLink | 61 | 108 us | |
| PhutilSimpleOptions::parse | 1 | 1 us | |
| PhutilSimpleOptions::normalizeKey | 1 | 1 us | |
| PhabricatorUser::validateUsername | 133 | 373 us | |
| PhabricatorUserEmail::isValidAddress | 295 | 655 us | |
| PhabricatorQuery::flattenSubclause | 5,143 | 2,117 us | |
| PhabricatorUser::save | 119 | 213 us | |
| PhabricatorTypeaheadDatasource::tokenizeString | 144 | 44 us | |
| PhabricatorApplicationTransactionEditor::validateIsEmptyTextField | 40 | 114 us | |
| PhabricatorPolicyQuery::isObjectPolicy | 1,913 | 3,217 us | |
| PhabricatorPeopleQuery::buildWhereClauseParts | 72 | 89 us | |
| PhabricatorFile::writeToEngine | 30 | 27 us | |
| PhabricatorFile::buildFromFileData | 17 | 12 us | |
| PhutilRemarkupEngine::isEmptyBlock | 20 | 16 us | |
| PhutilRemarkupDefaultBlockRule::markupText | 20 | 4,932 us | |
| PhabricatorFile::getCDNURI | 18 | 21 us | |
| PhabricatorApplicationTransaction::hasComment | 4 | 10 us | |
| xsprintf@1 | 468 | 313 us | |
| xsprintf_command@1 | 468 | 767 us | |
| DifferentialCommitMessageParser::parseCorpus | 13 | 0 us | |
| PhutilUTF8StringTruncator::setTerminator | 29 | 42 us | |
| phutil_utf8v | 89 | 124 us | |
| PhutilUTF8StringTruncator::truncateString | 277 | 43 us | |
| DifferentialChangesetParser::getHighlightFuture | 28 | 53 us | |
| DifferentialChangesetParser::calculateGapsMaskAndDepths | 152 | 8 us | |
| ArcanistDiffUtils::generateIntralineDiff | 40 | 61 us | |
| ArcanistDiffUtils::computeIntralineEdits | 16 | 3 us | |
| ArcanistDiffUtils::applyIntralineDiff | 32 | 46 us | |
| PhutilRope::append | 10 | 6 us | |
| PhutilChannel::isReadBufferEmpty | 5 | 6 us | |
| PhutilChannel::update | 29 | 16 us | |
| phutil_fwrite_nonblocking_stream | 5 | 6 us | |
| PhutilRope::removeBytesFromHead | 5 | 8 us | |
| PhutilProtocolChannel::read | 14 | 13 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::readProtocolBytes | 4 | 4 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::decodeStream | 4 | 0 us | |
| DiffusionMercurialWireClientSSHProtocolChannel::newDataMessage | 3 | 3 us | |
| DiffusionSubversionWireProtocol::writeData | 52 | 4 us | |
| DiffusionSubversionWireProtocol::serializeStruct | 1 | 1 us | |
| PhabricatorCaches::maybeDeflateData | 19 | 23 us | |
| HarbormasterBuildPlanQuery::buildWhereClauseParts | 20 | 59 us | |
| PhabricatorGlobalLock::newLock | 7 | 1 us | |
| HarbormasterBuildStep::getName | 2 | 3 us | |
| HeraldObjectTranscript::truncateValue | 5 | 1 us | |
| HeraldObjectTranscript::truncateValue@1 | 4 | 1 us | |
| PhabricatorLiskDAO::chunkSQL | 147 | 75 us | |
| ManiphestTaskStatus::isValidStatusConstant | 40 | 102 us | |
| ManiphestTaskQuery::buildFullTextWhereClause | 38 | 83 us | |
| PhabricatorQuery::flattenSubclause@1 | 38 | 28 us | |
| PhabricatorCursorPagedPolicyAwareQuery::isCustomFieldOrderKey | 24 | 37 us | |
| AphrontRequest::getPrefixedCookieName | 7 | 21 us | |
| PhabricatorAuthStartController::handleRequest | 7 | 11 us | |
| PHUIInfoView::render | 7 | 1 us | |
| PhabricatorStandardPageView::getTitle | 18 | 27 us | |
| PhabricatorBarePageView::getHead | 9 | 29 us | |
| DarkConsoleCore::sanitizeForJSON@3 | 450 | 435 us | |
| DarkConsoleCore::sanitizeForJSON@2 | 1,206 | 254 us | |
| DarkConsoleCore::sanitizeForJSON@1 | 54 | 58 us | |
| DarkConsoleCore::sanitizeForJSON@4 | 54 | 26 us | |
| DarkConsoleCore::sanitizeForJSON | 9 | 8 us | |
| PhabricatorUser::getFullName | 34 | 65 us | |
| PhutilDocblockParser::parse | 1,784 | 126 us | |
| PhabricatorEnv::requireValidRemoteURIForFetch | 16 | 17 us | |
| PhabricatorPasswordHasher::getPasswordHashForStorage | 1 | 0 us | |
| PhabricatorMailReceiver::stripMailboxPrefix | 175 | 208 us | |
| PhabricatorMetaMTAEmailBodyParser::stripCommands | 214 | 82 us | |
| PhabricatorMetaMTAMailBody::addRawSection | 2 | 2 us | |
| PhabricatorMetaMTAMail::sendNow | 7 | 7 us | |
| PhabricatorMetaMTAReceivedMail::sendExceptionMail | 8 | 10 us | |
| PhabricatorMailReceiver::loadSender | 1 | 1 us | |
| PhutilQueryStringParser::parseQueryStringToPairList | 85 | 64 us | |
| PhutilQueryStringParser::parseQueryString | 51 | 11 us | |
| PhutilContextFreeGrammar::applyRules@3 | 664 | 228 us | |
| PhutilContextFreeGrammar::applyRules@2 | 503 | 144 us | |
| PhutilContextFreeGrammar::applyRules@1 | 329 | 59 us | |
| PhutilContextFreeGrammar::applyRules | 151 | 27 us | |
| phutil_hashes_are_identical | 3 | 1 us | |
| PhabricatorOwnersPackageTestCase::testFindLongestPathsPerPackage | 3 | 2 us | |
| array_map | 3 | 2 us | |
| PhabricatorPasswordHasher::getAllHashers | 6 | 3 us | |
| PhabricatorLocalDiskFileStorageEngine::canWriteFiles | 2 | 2 us | |
| PhabricatorS3FileStorageEngine::canWriteFiles | 2 | 2 us | |
| PhabricatorRepository::getSubversionPathURI | 141 | 87 us | |
| PhabricatorRepository::getSubversionBaseURI | 20 | 26 us | |
| PassphraseCredentialQuery::buildWhereClauseParts | 2 | 4 us | |
| PhabricatorSpacesNamespaceEditor::getCustomTransactionOldValue | 7 | 24 us | |
| PhabricatorTOTPAuthFactor::base32Decode | 4 | 0 us | |
| phutil_parse_bytes | 12 | 13 us | |
| PhabricatorRepositoryQuery::buildWhereClauseParts | 58 | 33 us | |
| DiffusionLowLevelGitRefQuery::executeQuery | 6 | 3 us | |
| PhabricatorGitGraphStream::parseUntil | 8 | 0 us | |
| PhabricatorRepositoryGitCommitChangeParserWorker::parseCommitChanges | 22 | 2 us | |
| PhabricatorRepositorySvnCommitChangeParserWorker::lookupPathFileTypes | 12 | 3 us | |
| PhabricatorRepositorySvnCommitChangeParserWorker::parseCommitChanges | 28 | 20 us | |
| Filesystem::remove | 16 | 7 us | |
| PhabricatorMercurialGraphStream::parseUntil | 8 | 3 us | |
| PhabricatorMercurialGraphStream::parseParents | 8 | 5 us | |
| ArcanistMercurialParser::parseMercurialStatusDetails | 7 | 3 us | |
| ArcanistMercurialParser::parseMercurialLog | 7 | 2 us | |
| CommandException::summarize | 8 | 4,280 us | |
| ArcanistUnitConsoleRenderer::renderUnitResult | 291 | 86 us | |
| ArcanistUnitTestResult::mergeCoverage | 2,156,886 | 235,681 us | |
| Child Calls | | | |
| PhutilSafeHTML::__toString | 48 | 11,482 us | 2.1% |
| PhutilCommandString::__toString | 2 | 4,262 us | 0.8% |