Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco
0 Пользователей и 1 Гость просматривают эту тему.
#include <stdio.h>long myfunct(long a) { .........}main() { long i; for (i = 0; i <= 1000000; ++i) { printf("%d",myfunct(i)); }}
Код: [Выделить] for (i = 0; i <= 1000000; ++i) { printf("%d",myfunct(i)); }}Если закомментировать printf, скорость выполнения повышается в 20-30 раз. Как повысить скорость выполнения, но чтобы программа продолжала выводить данные?
for (i = 0; i <= 1000000; ++i) { printf("%d",myfunct(i)); }}
Цитата: hon от 05 Мая 2014, 17:53:36Код: [Выделить] for (i = 0; i <= 1000000; ++i) { printf("%d",myfunct(i)); }}Если закомментировать printf, скорость выполнения повышается в 20-30 раз. Как повысить скорость выполнения, но чтобы программа продолжала выводить данные?Если это рабочий пример, то если закомментировать printf, то и myfunct не будет выполняться. Естественно станет гораздо быстрее.
Очевидно же - не выводить данные, а писать в память (в файл), затем вывести отдельно...
Неужели, если не выводить числа, программа работает несколько минут?
real 0m9.586suser 0m8.600ssys 0m0.000s
real 0m0.496suser 0m0.300ssys 0m0.000s
Программа работает обычно несколько часов. Продолжительности работы зависит от входных параметров. В результате работы программа генерирует файл от нескольких килобайт до мегабайт длиной. В выходном файле находятся строки, на каждой из которых записано по одному числу.Низкая производительность программы (мегабайт в час) связана с тяжелыми вычислениями (вычисление простых чисел с одной особенностью).
Страница сгенерирована за 0.021 секунд. Запросов: 21.