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

Алгоритм шифрования DES (необходимо ускорить любым доступным способом) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с flash приложениями http://www.cyberforum.ru/cpp/thread733547.html
Есть некая flash игра, в ней есть цифры которые периодически меняются как можно получить их?
C++ Обработка изображения Здравствуйте. В С программировать начал недавно. Необходимо реализовать алгоритм обработки изображения на С++ с использованием только стандартных библиотек (курсовая). 1. С помощью каких функций... http://www.cyberforum.ru/cpp/thread732855.html
init error file not found C++
Написал на Си программу, в ней используются двумерные массивы (скорей всего проблема в них). При запуске выдает mapping_data_source::init error: file not found Process returned -1073741571...
Алгоритм построения полного потока C++
Как реализовать на c++ алгоритм построения полного потока Может есть у кого пример?
C++ стеганография в tcp/ip http://www.cyberforum.ru/cpp/thread729800.html
посоветуйте, что почитать. может кто-то занимался помогите пожалуйста
C++ Шеннон-Фано Помогите пожалуйста разобраться. Понимаю смысл алгоритма Шеннона-Фано. У меня есть код этого алгоритма и мне нужно разобрать как он работает void Schennon_Fano(int index1, int index2) {... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6632 / 5039 / 466
Регистрация: 14.02.2011
Сообщений: 16,849
17.12.2012, 14:27
Цитата Сообщение от Gepar Посмотреть сообщение
Повлияет ли как-то на скорость выполнения программы если я разделю на файл заголовков и реализаций (.h и .cpp файл), или это только на читабельность повлияет, а на скорость никак? Я просто раньше как-то не заморачивался над этим и не экономил доли секунд.
по моему нет
Цитата Сообщение от Gepar Посмотреть сообщение
static const size_t P[32] =
{16,25,12,11,3,20,4,15,
31,17,9,6,27,14,1,22,
30,24,8,18,0,5,29,23,
13,19,2,26,10,21,28,7};
ты же больше нигде не используешь эту таблицу?
забей сразу значение ключей
типа
C++
1
2
static const unsigned int 0 P[32] = 
    {0x00010000, 0x02000000
ну и так далее
избавишься от этого сдвига
Цитата Сообщение от Gepar Посмотреть сообщение
1ULL << (P[i])
далее

Цитата Сообщение от Gepar Посмотреть сообщение
result |= (word & (1ULL << (P[i]))) >> P[i];
это ты выставляешь младший бит если установлен флаг?
может перейти к булю
C++
1
result |=(int)( (word &P[i])!=0);
разверни цикл
этим ты увеличишь скорость, может быть во много раз если код не попадает в кэш
и можно будет избавится от таблицы (значит от адресной арифметики) скорость еще увеличится
например так
C++
1
2
 result |=(word&0x00010000)<<15; //загнали в 31 бит 
 result |=(word&0x02000000)<<5; // загнали в 30 бит
ну и так далее
да читабельность потеряется может придется делать комментарии
но скорость увеличится, тем более если процессору удастся спараллелить команды


Цитата Сообщение от Gepar Посмотреть сообщение
1)Быстрее вызов void функции с передчей параметра uint64_t по ссылке и возврат результата через этот же параметр VS вызов функции с const аргументом переданным по ссылке и возврат результирующего значения uint64_t
тут уже надо смотреть листинг
но при возврате значения будут задействованы два регистра EAX EDX а при ссылке будет работа с памятью
но повторюсь надо смотреть


Цитата Сообщение от Gepar Посмотреть сообщение
но если я ещё и за профилировщики возьмусь то на дес совсем не хватит.
ну а как еще искать слабые места, иногда они возникают на пустом месте например из-за того что память не выравнена на параграф

Добавлено через 2 минуты
Цитата Сообщение от Gepar Посмотреть сообщение
или можно попытаться написать
Block* block = &value;
здесь ты берешь адрес
а при юнион нет выигрыш
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru