Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2013, 16:46   #1
Homa_1983
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 29
По умолчанию Уменьшение времени счета программы.

Всем доброго времени суток!

Мой вопрос состоит в следующем.
Перевожу большой и сложный проект написанный на visual Fortran 6.5 (Developer Studio) на С++ и интерфейс на Builder.
В исходнике на фортране все работает, но есть проблема - при добавлении одного из модулей время счета непомерно возрастает. Все дело в большом объеме интегрирования и больших вложенных друг в друга циклах Do с мелким приращением (внешний цикл от 0 до 360 град. с шагом 0.5 град. + расчет вспомогательных величин: интегрирование примерно по 300 точек несколько циклов за один цикл внешнего и т.п.) Примерно так:
Код:
DO i = 1, 360, 0.5
  ...
  do i = 1,300
    a(i) = a(i) + некие данные
  end do
  do i = 1,300
    b(i) = b(i) + некие данные
  end do
  do i = 1,300
    c(i) = c(i) + некие данные
  end do
...
ENDDO
И таких мест там много =).

Можно ли как-то уменьшить время счета проекта при переводе его на С++? Может есть какие-нибудь хитрые методы или интересные возможности среды Builder?
Математически упростить расчет не представляется возможным - нужно действительно очень много всего просчитать.
Поделитесь, пожалуйста, своим опытом или дайте ссылочку, где чего почитать

Последний раз редактировалось Homa_1983; 21.06.2013 в 16:48.
Homa_1983 вне форума Ответить с цитированием
Старый 21.06.2013, 17:08   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Все расчёты вынести в отдельный поток.
FataLL вне форума Ответить с цитированием
Старый 21.06.2013, 21:21   #3
Homa_1983
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 29
По умолчанию

В организации потоков я NULL. Поэтому попрошу направить меня в нужное русло...
http://msdn.microsoft.com/ru-ru/library/hh875062.aspx это то что нужно?

Если нет, то дайте ссылочку, где чайнику почитать можно по понятнее...
Homa_1983 вне форума Ответить с цитированием
Старый 22.06.2013, 03:01   #4
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

Для потоков есть класс TThread , а почитать про него можно в замечательной книге "Холингворт Д. - Borland C++ Builder 5. Руководство разработчика" , книжка старовата , но там отличное описание работы с потоками.
microbit вне форума Ответить с цитированием
Старый 22.06.2013, 09:42   #5
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Homa_1983
В папке билдера [Examples\Apps\Threads] есть прекрасный пример, причём отлично подходящий под текущую задачу. Там отдельно сортируются три массива чисел и графически выводятся на экран.
FataLL вне форума Ответить с цитированием
Старый 22.06.2013, 09:59   #6
Homa_1983
Пользователь
 
Регистрация: 14.10.2011
Сообщений: 29
По умолчанию

Большое спасибо!
Homa_1983 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уменьшение размера изображения на php уменьшение качества картинки пример class php jpeg gif png xzxz PHP 2 19.11.2012 11:11
VCL vs KOL. Уменьшение размера программы. Lier Общие вопросы Delphi 11 03.05.2012 14:23
Замер времени работы программы JuniorProger Общие вопросы C/C++ 9 16.02.2012 08:58
Запуск программы по времени Talemir Общие вопросы Delphi 17 03.02.2010 16:33
Уменьшение загрузки ЦП и увеличение скорости программы. Shadow_1329 Gamedev - cоздание игр: Unity, OpenGL, DirectX 80 18.08.2009 15:22