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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2013, 04:35   #1
Federacia
Новичок
Джуниор
 
Регистрация: 04.01.2013
Сообщений: 1
По умолчанию Что лучше сэкономить?

Вот мне по ходу одной программы необходимо держать в памяти много цифр от 1 до 4.
Сделать это можно двумя способами -
1)тупо заполнить ячейки памяти этими цифрами.
2)скомбинировать эти цифры по 4 в один байт и забить память в 4 раза меньше, но при этом напрячь процессор преобразованиями.
Обращатся к этим ячейкам после записи, то есть обратно преобразовывать, нужно ровно 4 раза.

Вопрос - как лучше? Чисто теоретически, потому что на практике и памяти и процессора хватает более чем. Просто хочется научится писать правильно.

Последний раз редактировалось Federacia; 04.01.2013 в 04:46.
Federacia вне форума Ответить с цитированием
Старый 04.01.2013, 08:10   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Вопрос весьма абстрактный, потому и ответ не может быть точным.
Вообще всё зависит от того как вам нужно эти "цифры" обрабатывать. Идеальным вариантом будет их пакетная обработка. Вам кажется, что, если число после прочтения нужно еще и разобрать, то это будет работать дольше, но это не так. Ведь процессору нужно гораздо меньше времени для выделения бит из байта, чем системе нужно времени для чтения еще 3-х байт из памяти. ASM вам в помощь.
Sibedir вне форума Ответить с цитированием
Старый 04.01.2013, 09:17   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
ASM вам в помощь.
Можно и без Асма обойтись. В С++ есть операции побитового сдвига << >>.
Например: X << 2 - сдвинуть число на два бита влево.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 04.01.2013, 22:11   #4
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

А в ассемблере есть команды simd. Что в некоторых случаях будет сильно быстрее.
Son Of Pain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сэкономить память? Unmanner Общие вопросы C/C++ 11 26.01.2012 23:45
3d графики: что вообще есть и что лучше использовать Krasi Общие вопросы по Java, Java SE, Kotlin 1 09.05.2011 14:41
Что лучше Miha85193 Общие вопросы Delphi 4 30.07.2010 01:57
Что лучше Syn-McJ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 18.05.2010 09:10