Есть ли простой способ подсчитать количество умножений, фактически выполненных частью стандартного кода C? Код, который я имею в виду, в основном просто выполняет сложения и умножения, и именно умножения представляют основной интерес, но не мешало бы также подсчитать и другие операции.
Если бы это был вариант, я полагаю, я мог бы заменить «a * b» на «умножить (a, b)» и написать функцию покрытия для собственного оператора *, b/c Меня действительно не волнует производительность по времени во время этого теста, но основным возражением против этого является необходимость переделывать груду исходного кода только для того, чтобы запустить тест.
У меня нет возражений против повторной компиляции исходного кода, возможно, с использованием какой-либо библиотеки или с неясными (афаик) параметрами. На ум пришел Valgrind, но если я понимаю цель valgrind, это больше касается отслеживания значений, чем операций подсчета.