import 'package:analyzer/file_system/overlay_file_system.dart'; import 'package:analyzer/file_system/physical_file_system.dart'; import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart'; import 'package:analyzer/src/dart/analysis/byte_store.dart'; import 'package:analyzer/src/util/performance/operation_performance.dart'; void main() async { while (true) { var byteStore = MemoryByteStore(); var resourceProvider = OverlayResourceProvider( PhysicalResourceProvider.INSTANCE, ); var collection = AnalysisContextCollectionImpl( resourceProvider: resourceProvider, includedPaths: [ // '/Users/scheglov/dart/macro_benchmark/generated/json-manual/package_under_test', '/Users/scheglov/dart/macro_benchmark/generated/json-macro/package_under_test', ], byteStore: byteStore, ); { var timer = Stopwatch()..start(); for (var analysisContext in collection.contexts) { print(analysisContext.contextRoot.root.path); var analysisSession = analysisContext.currentSession; for (var path in analysisContext.contextRoot.analyzedFiles()) { if (path.endsWith('.dart')) { // print(' $path'); await analysisSession.getUnitElement(path); // await analysisSession.getResolvedUnit(path); // var ur = (await analysisSession.getUnitElement(path)) as UnitElementResult; // var library = ur.element.library as LibraryElementImpl; // print(library.augmentations.single.macroGenerated!.code); } } } print('[time: ${timer.elapsedMilliseconds} ms]'); } { var buffer = StringBuffer(); collection.scheduler.accumulatedPerformance.write(buffer: buffer); print(buffer); collection.scheduler.accumulatedPerformance = OperationPerformanceImpl( '', ); } // { // var buffer = StringBuffer(); // md5Operation.write(buffer: buffer); // print(buffer); // md5Operation = OperationPerformanceImpl('md5-root'); // } await collection.dispose(); } }