Спросите о времени работы программы

Я пишу программу синтаксического анализатора (написанную на OCaml), которая принимает входные данные в формате xsd, а затем генерирует их в файл Coq. Но потребовалось много времени (~: 0m.0152s) для генерации в терминале. Я хотел бы знать некоторые предложения, чтобы ускорить работу празера? например, в чем причина того, что программа работает медленно? Это первый раз, когда я сталкиваюсь с этой проблемой времени выполнения. Поэтому я очень признателен за любые предложения/опыты по этому поводу?

Большое тебе спасибо

РЕДАКТИРОВАТЬ: я могу попытаться объяснить основной файл:

open Libxml;; (*it is the library for xml file*)
open Error;; (* it is for the error message*)

let main () =     
  let xml = parse_xml stdin in
  let xsds = Xsd_of_xml.xsd_of_xml xml in (* It is a parsing from xml to xsds *)
  let b = Buffer.create 10000 in

  Coq_of_xsd.genr_coq b xsds; (* It is a parsing from xsds to Coq type *)
  Buffer.output_buffer stdout b;;

let _ = run main;;

Я пишу Makefile.xsd2coq так:

MAIN := xsd2coq

FILES := util error libxml xsd scc xsd_of_xml coqxsd_matrix coqxsd_print coq_of_xsd

FRAGILE_FILES := xsd coqxsd_matrix coqxsd_print coq_of_xsd

LIBS := xml-light/xml-light

INCLUDES := -I xml-light

coq_of_xsd.cmo coq_of_xsd.cmx libxml.cmo libxml.cmx: WARNINGS = -warn-error Aezk

include Makefile.ocaml

В основном: Makefile

xsd2coq: FORCE
    $(MAKE) -f Makefile.xsd2coq depend
    $(MAKE) -f Makefile.xsd2coq

person Quyen    schedule 21.10.2013    source источник
comment
Объясните, как вы измеряете время, и, возможно, мы сможем вам помочь. Если это 0,0152 с от начала (т.е. время), то происходит много всего (настройка среды выполнения и инициализация виртуальной машины), и ваш работающий код может быть презренным.   -  person snf    schedule 21.10.2013


Ответы (1)