Я создаю приложение DSL в XTend, и мне нужно измерить время, необходимое для перевода каждого документа, который я запускаю через него.
Я использую возможности DSL для перевода одного формата данных (IFC)в другое (TTL).
Я пытался измерить его с помощью System.currentTimeMillis () в методе генератора doGenerate (myDslGenerator.xtend), но, насколько я вижу, это измеряет только времятребуется, чтобы записать выходной файл, а не время, необходимое для разбора входного файла.
Мне не нужно время, необходимое для загрузки приложения Eclipse, только фактическое время (не процессорное время), потраченноепри переводе для каждого файла.
Мой текущий (неправильный) подход дает результаты от 0 до 500 мс для задач, занимающих несколько (до 20) секунд.
doGenerate вызывается из ParallelBuilderParticipantclass (handleChangedContents method) в зависимостях Eclipse, но я не могу отследить его дальше, чтобы найти, откуда это вызывается.Но, может быть, этот метод на самом деле также включает в себя синтаксический анализ (Resource resource = contect.resource)?
Любое понимание было бы здорово - спасибо 101
РЕДАКТИРОВАТЬ: Попытка разместить здесь больше информации - надеюсьэто полезно.
Измерение времени выполнения метода doGenerate дает мне время, необходимое для написания файла ".ttl", но времячтение файла «.ifc» не является его частью, так как он был проанализирован до вызова метода doGenerate.Метод doGenerate является частью шаблона XTend и происходит от AbstractGenerator.
Выполняя поиск использования в проекте, я вижу, что метод doGenerate вызывается из класса ParallelBuilderParticipant.
Смогу ли я найти полное время, необходимое для синтаксического анализа одного файла и записи другого, если вместо этого я буду измерять время этого класса?И если да, то как мне это сделать, поскольку это файл зависимостей .class - Eclipse не позволяет мне его редактировать.