Форум программистов, компьютерный форум CyberForum.ru

Производительность операций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Морзянка http://www.cyberforum.ru/cpp-beginners/thread387525.html
Всем привет !! Написал программу которая переводит слова в морзянка. Теперь мне надо написать программу которая будет все делать наоборот переводить из морзянки в слова P.S. Моя программа работает только на компиляторах с настроенным русским языком !!!! void morza(char str, int str_len) { int i; for(i=0;i<str_len;i++) { switch(str) {
C++ Математическая функция Составить программу вычисления значения выражения: 1/3 +2 модуль(cos(x-Pi/6)) #include <iostream.h> #include <conio.h> #include <math.h> main() { float x; cout<<"x="; http://www.cyberforum.ru/cpp-beginners/thread387507.html
Секундомер с выводом на экран C++
доброго времени суток. подскажите пожалуйста как сделать секундомер, что бы при нажатии кнопки он остановился пробывал так, оно не работает, та и мили секунды показывает не правильно почему то int ms=0,s=0,m=0,h=0,ch,hh=3600,mm=60,ss=1000; do { system("cls"); ms++; if (ms==ss) {
ООП работа с БД C++
Всем привет! Есть такое задание: Написать программу «Моя записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям. В программе должен быть определен класс, который содержит указатель на структуру, описывающую...
C++ что такое перезагрузка http://www.cyberforum.ru/cpp-beginners/thread387491.html
cout<<trololo Что такое << мне определение, перпод жесткий, + еще мы учим с а не с++ . и с меня он вдвойне спрашивает! и что такое перезагрузка, определение плз
C++ Многомерные массивы и функции. Доброго времени суток. Помогите разобраться с задачкой. Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. Вот код: #include <iostream>... подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.11.2011, 08:52     Производительность операций
Цитата Сообщение от Bers Посмотреть сообщение
Я конечно, не разбираюсь в ассемблере, но по моему это очивидно, не?
Абсолютно не очевидно, но часто верно. Для такого вывода надо знать, что есть дальние и ближние переходы, что разные операции перехода выполняются за разное время, что если ты не уложился в дальность ближнего перехода, то будет дальний, что есть кэш, что он работает на повыешонной в сравнении с оперативкой частоте, что большие куски кода в кэш тупо не влезают и много чего ещё. Часто больший по размеру код оказывается быстрее за счёт более быстрых операций. Какой цикл с чёным числом шагов меньше весит? Где все шаги явные, или где вместо одного тела цикла имеется два его экземпляра? Так вот, иногда быстрее второй вариант, а меньше всегда первый. Часто быстрее больший код с тормозными операциями, но работающий с более компактными данными. Вообще нет общих правил оптимизации по времени, кроме:
1. Избегайте сравнения в цикле с чем бы то ни было, кроме ноля. Но только если это не ведёт к усложнению тела цикла.
2. Избегайте постфиксной формы инкремента/декремента.
3. Избегайте мультипликативных операций везде, где это не ведёт к увеличению общего числа операций.
4. Избегайте вычислений с плавающей запятой везде, где их можно без усложнения алгоритма заменить целочисленными.
5. Избегаейте передачи больших объектов по значению.
6. Избегайте рекурсии везде, где она не вытекает из самой задачи, или из структуры данных. Неоправданная рекурися ведёт к тормозам, но там, где она вытекает из задачи, или из структуры данных, любая попытка избавить от неё ведёт к усложеннию алгоритма и может привести к ещё большим тормозам.
Всё остальное делается с кучей тестов и замерами времени. В том числе, пробуют как экономить размер кода, так и несколько его раздувать, менять представление данных, используют априорную информацию о структуре матриц коэффициентов систем уравнений для оптимизации на уровне алгоритма.
 
Текущее время: 12:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru