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

Скорость или размер. Динамика - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Python Как редактировать .pyd файл? http://www.cyberforum.ru/cpp/thread1780196.html
Помогите пожалуйста открыть файлы разрешения .pyd, и обьясните что это такое. Спасибо!
C++ Builder Воспроизведение текста голосом Нужна помощь!!! цель ввести в edit текст который через кнопку будет воспроизводиться. Как сделать? http://www.cyberforum.ru/cpp/thread1780174.html
Не определяется класс Синглтона в другом классе C++
Подскажите, пожалуйста, что нужно исправить. Компилятор выдает такие ошибки: 1. error c2027: использование неопределенного типа SymbolTable 2. error c2228: выражение слева от .getNumber() должно представлять структуру, класс или объединение 3. error c3861: instance: идентификатор не определен класс, из которого выполняется обращение к синглтону выглядит так: #ifndef VARIABLE_H #define...
C++ Существует ли какие-нибудь мета редакторы(авто дописывание кода)?
Всем доброго времени суток! Я решил оптимизировать свою работу и придумал следующую идею на основе авто кода в C++ XE3. Если в среде написать switch и следать пробел, то программа сама допишет то, что нужно программисту. Пример: я писал switch(Enum_Value), где enum Enum_Value{Value1,Value2,Value3} После того, как я нажимал пробел или enter, программа сама дописывала switch(Enum_Value){...
C++ Таблица символов для компилятора http://www.cyberforum.ru/cpp/thread1778725.html
Делаю простой компилятор и что-то зависла на вопросе о том, как хорошо реализовать таблицу символов. Реализовать в виде класса, где в качестве поля используется, скажем, вектор, в который добавляются символы. При этом, чтобы такая таблица была одна, и другие классы, представляющие структуру языка (Variable, Constant) могли к ней обращаться. Думала о реализации Одиночки, но не очень хорошо...
C++ Хэш код для нормализованного вектора Мне нужно генерировать 64-разрядный хэш для трехмерных нормализованных векторов (double). Хэши должны быть равны если сгенерированы из одного или равных (поэлементно) векторов. У кого какие мысли? Может есть стандартный алгоритм? Да и ещё - после генерации 64-разрядного хэш-кода я увязываю его с 64-разрядным "ключевым сидом" методом XOR и далее сливаю в 32-битное значение применяя XOR к... подробнее

Показать сообщение отдельно
Izual
93 / 118 / 6
Регистрация: 13.11.2012
Сообщений: 1,537
14.07.2016, 12:28  [ТС]     Скорость или размер. Динамика
Цитата Сообщение от hoggy Посмотреть сообщение
указатель на объект helper (type erasure),
который умеет "запоминать" тип хранимого ресурса.
Не пойдёт мне кажется, загуглил.. но результатом возврата type_id будет соответствовать общяя структура VARIANT. (вложенный union он не возьмёт)
Вообще исходя из потери памяти при использовании VARIANT/union меня напрягает.. (например если я возьму максимальный член в union'e 8 байт, то всё что меньше - будет просто жрать лишнюю память, и ничего я с этим не смогу поделать, в виду того, что даже если хотел бы это оптимизировать, то всё к чему я смогу свести затраты - это использование в 86х - 4байтовых указателей на доп массивы с 8 байтовыми типами. А все что ниже границы в 4 байта - будет провисать. С другой стороны можно для меньших типов тоже сделать доп массивы, а в самом VARIANT держать порядковые номера.)
Цитата Сообщение от hoggy Посмотреть сообщение
в принципе, это все,
что нужно знать для его изготовления.
Да я уже давно этим занимаюсь, как сделать косо-криво, ну так как "принято" - это не проблема, но хочется же чего то более оптимального.
Цитата Сообщение от hoggy Посмотреть сообщение
"дата ориентированное программирования".
зайимусь) спс.

По поводу битовых полей - изначально я задумался а чем отличается signed от unsigned. Поидее если использовать 1бит, то можно в нём хранить знак, остальные биты уйдут непосредственно на значение, допустим Short: (unsigned)2^16=65536, если юзать 1 бит как показатель знака, то максимум останется 2^15 = 32768, но ведь если оно unsigned, то бит знака будет лишним. И так, значит компилер не юзает 1бит, а грубо говоря где то в кэше хранит type_id, в соответствии с которым в случае signed - если число заходит за предел в 32768, то автоматически делает X-32768, что и гарантирует отрицательное значение(ну это я утрирую конешно, в реалии я думаю сделано чуть логичнее). Так вот в этом случае использование битового поля неоправдано, но ведь если сущуствуют, то есть реальный пример того, где они могут сыграть полезную роль. Я не имею ввиду разбитие 1 байта на 8bool переменных, хотя это тоже хороший плюс. Я задумался над проблемой выделения больших кусков памяти, если в 86х ОС максимальный размер стэка (как и читаемой области памяти) это 4ГБ (2^32), то использовать unsigned long long не имеет смысла, т.к. как бы мы не хотели - помимо нашей программы ОСи придётся потратить ~1ГБ на себя и минимальные службы. Остаётся 3ГБ, если мы их выделим - это будет равносильно 100% использования ОЗУ, что поведёт плачевные последствия, тогда максимум для 86х будет 1.5 Гб (можно даже 2ГБ, ну с 500 метрами в запасе - жить возможно, подобный случай выделения 2гб=2^31 будет достаточно редким, поэтому можно ещё сократить, а 2гб планку оставить как exception. Думается что для нормы будет достаточно давать максимум на выделение - 250мб (должно быть это 2^28), в этом случае остаётся 4бита -> 2^4=16, ну в числе 16 можно сохранить покрайней мере основные типы. Это я всё к тому, чтоб оптимизировать максимальную границу с возможностью использовать "лишние биты" для нужных целей, в этом случае в памяти не будет лишних сегментов.

Добавлено через 20 минут
Цитата Сообщение от hoggy Посмотреть сообщение
"дата ориентированное программирования".
Такое not exist.
 
Текущее время: 20:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru