![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Мне кажется, виноват не компилятор, а среда разработки (имхо).
Использую Code::Blocks (с MinGW) - по-моему, работает с long double. Для решения проблемы вылета используйте динамическое выделение памяти. Вывод 1000000 чисел еще не означает необходимость их хранения ![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 09.02.2013 в 22:52. |
![]() |
![]() |
![]() |
#12 | |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#13 | |||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Нет, на первый взгляд, логика в таком подходе присутствует. Но на практике разницы между компиляторами более чем в 6 раз нет. Т.е. в данном случае разница связана не с степенью оптимизации алгоритма, а с различиями в реализации самого алгоритма. Гадать, где именно в Вашем коде скрывается проблема, конечно, дело малоперспективное, но запросто может оказаться, что она там, где Вы ее совсем не ждете. Например, при переборе элементов двумерного массива скорость обработки может изменяться более чем в 10 раз просто от изменения порядка перебора индексов (сначала по i, потом по j или наоборот). Цитата:
Цитата:
PS. 2 минуты на вывод миллиона чисел - это ОЧЕНЬ много. Что-то у Вас не так с алгоритмом. Последний раз редактировалось s-andriano; 10.02.2013 в 11:30. |
|||
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 06.02.2013
Сообщений: 21
|
![]()
Компилятор для Паскаля fpc 2.4.0.
Алгоритм моей собственной задачи не имеет абсолютно никакого значения при подсчете времени. Просто когда моя программа не прошла тесты по причине превышения лимита времени, я подумал измерить время вывода данного количества чисел на Паскале, оказалось очень большим. Посмотрел время вывода этого же количества чисел на Си, оказалось гораздо меньше. Переписал свою программу на Си. Оказалось, что время работы действительно сократилось, причем довольно значительно. Возник вопрос - использование адресной арифметики при вводе, обработки и выводе большого количества данных насколько может сократить время работы программы и может ли наоборот увеличить. Последний раз редактировалось Metaluk; 10.02.2013 в 16:19. |
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Если у Вас время вывода различается в несколько раз, значит, дело не в оптимизаторе, а в чем-то гораздо более существенном.
Сейчас проверил: форматный вывод 1000000 чисел по 1 числу на строке - 12 с, бесформатный вывод 1000000 чисел по одному числу за раз - 5.8 с. бесформатный вывод массива длиной 1000000 чисел за раз - 0.05 с. Это при том, что провекрка была на процессоре Atom (!). Уверен, что Вы проверяли на существенно более мощном процессоре. |
![]() |
![]() |
![]() |
#16 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
в том, что программа падает виновата среда разработки? - Как это возможно?
|
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
чтоб сравнить надо смотреть код который у вас и там и там.
если в паскале вы применили просто array of, то это дин массив и он не в стеке потому и работает все. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#18 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]() Цитата:
![]() Не хочу спорить (могу быть не прав). Это же просто предположение ![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 06.02.2013
Сообщений: 21
|
![]()
Для s-andriano:
Процессор - Intel Celeron D, частота 3.33 ГГц, ОЗУ - 512 Мб. Используемый компилятор - fpc 2.4.0. Среда разработки - Geany. Теперь приведу 2 практически идентичные программы вывода на экран 500000 чисел Код:
Код:
Я провел несколько экспериментов по измерению времени вывода чисел. Выкладываю принтскрины экрана после работы программы. Для первой программы: 1. http://uploads.ru/SGtQU.jpg 2. http://uploads.ru/TeoOS.jpg 3. http://uploads.ru/MwoxU.jpg 4. http://uploads.ru/UoaKh.jpg 5. http://uploads.ru/EqNxP.jpg Для второй программы: 1. http://uploads.ru/8HZFo.jpg 2. http://uploads.ru/2GZyB.jpg 3. http://uploads.ru/feQBp.jpg 4. http://uploads.ru/aOJG4.jpg 5. http://uploads.ru/jxQAf.jpg Последний раз редактировалось Metaluk; 11.02.2013 в 16:18. |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 06.02.2013
Сообщений: 21
|
![]()
Протестировал так же для программы, в которой вообще массив не вводил. Время такое же примерно.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос про обращение серверного языка веб-программирования | Амелия | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 03.06.2012 12:18 |
And once again. Вопрос общего характера по выбору языка программирования. | eepive | Помощь студентам | 6 | 13.05.2011 10:37 |
много материалов по компиляторам, трансляторам, транслитераторам, лексическим анализаторам и т.п. | Marsel737 | Свободное общение | 1 | 03.09.2010 17:58 |
тест по Операционным системам,средам и оболочкам | guns'ik | Помощь студентам | 0 | 26.04.2010 19:13 |
Вопрос по языкам программирования | mixer94 | Помощь студентам | 4 | 08.06.2009 12:22 |