Есть ли язык программирования, который все измеряет?

Например, я хотел бы измерить, сколько памяти было выделено, количество использованных операций (с точки зрения циклов) и время, затраченное на ввод-вывод.

Такой язык отлично подходит для проведения соревнований по программированию.

3
MathGladiator 26 Янв 2011 в 04:30
2
Придется ли кому-нибудь из участников выучить ваш странный конкурсный язык, чтобы участвовать? Вы можете просто спросить ОС об этом.
 – 
Thomas Ahle
26 Янв 2011 в 04:32
1
Инструменты существуют для этого для ряда существующих языков. Эти инструменты вместе известны как профилировщики.
 – 
user166390
26 Янв 2011 в 08:08

2 ответа

Лучший ответ

Вы можете рассмотреть возможность запуска программы, скомпилированной / интерпретируемой существующим языком, с помощью такого инструмента, как ValGrind, который может сообщать о таких факторах. При необходимости вы можете расширить ValGrind.

2
Tony Delroy 26 Янв 2011 в 04:35

Похоже, вам нужен инструмент , не обязательно язык. Я использую инструменты профилирования, чтобы делать подобные вещи со встроенными программами C. У вашего поставщика компилятора могут быть аналогичные инструменты.

Операционная система отвечает за управление памятью, поэтому, вероятно, проще всего заставить ОС сообщить вам об этом. Другой вариант - написать библиотеку, которую должны использовать участники, которая строит оболочки вокруг malloc и т. Д. Когда вызывается malloc библиотеки, она регистрирует, сколько памяти было выделено, и вызывает реальный malloc}. После завершения программы у вас будет полный журнал использования динамической памяти программой. Вы также можете написать оболочки для функций ввода-вывода, которые регистрируют задержку этих функций (используйте временную метку перед вызовом реальной функции и после ее завершения).

3
bta 26 Янв 2011 в 05:19