diff --git a/Performance.php b/Performance.php index cfb0076..1416c95 100644 --- a/Performance.php +++ b/Performance.php @@ -5,6 +5,7 @@ require __DIR__ . '/vendor/autoload.php'; use Exception; use LanguageServer\Index\Index; +use LanguageServer\ParserKind; use LanguageServer\ParserResourceFactory; use LanguageServer\PhpDocument; use phpDocumentor\Reflection\DocBlockFactory; @@ -32,25 +33,50 @@ if (count($testProviderArray) === 0) { throw new Exception("ERROR: Validation testsuite frameworks not found - run `git submodule update --init --recursive` to download."); } +$start = microtime(true); + +$documents = []; foreach ($testProviderArray as $idx=>$testCaseFile) { - if ($idx > 20) { - exit(); + if ($idx > 100) { + break; } - echo "$idx\n"; + echo "$idx=>$testCaseFile\n"; $fileContents = file_get_contents($testCaseFile); - $parser = ParserResourceFactory::getParser(); - $docBlockFactory = DocBlockFactory::createInstance(); - $index = new Index; + $docBlockFactory = DocBlockFactory::createInstance(); + $index = new Index; + + $parserKinds = [ParserKind::DIAGNOSTIC_PHP_PARSER, ParserKind::DIAGNOSTIC_TOLERANT_PHP_PARSER]; + + $maxRecursion = []; + foreach ($parserKinds as $kind) { + global $parserKind; + $parserKind = $kind; + $definitionResolver = ParserResourceFactory::getDefinitionResolver($index); + $parser = ParserResourceFactory::getParser(); + try { $document = new PhpDocument($testCaseFile, $fileContents, $index, $parser, $docBlockFactory, $definitionResolver); + if ($document->getStmts() === null) { + echo "AHHHHHHHHHH\n"; + } + if (isset($maxRecursion[$testCaseFile]) && $maxRecursion[$testCaseFile] !== ($max = $definitionResolver::$maxRecursion)) { + $documents[] = "$testCaseFile\n => OLD: $maxRecursion[$testCaseFile], NEW: $max"; + } + $maxRecursion[$testCaseFile] = $definitionResolver::$maxRecursion; +// $definitionResolver->printLogs(); } catch (\Exception $e) { - echo "AAAHH\n"; +// echo "AAAHH\n"; continue; } + } } +echo "------------------------------\n"; +var_dump($documents); + +echo "Time: " . (microtime(true) - $start) . PHP_EOL;