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

реализация класса в .h файле хорошо или плохо? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка с полем в классе http://www.cyberforum.ru/cpp-beginners/thread939514.html
Пишу класс.Сюда его выкладывать не хочу,ибо он достаточно обширный.В классе доступе private задаю поле дескриптора файла.Тоесть что-то типо того: Class Myclass { private: HANDLE file; ... public: ... };
C++ Сообщения между win32 приложениями Как отправить сообщение (аналог системных типа WM_DESTROY только свои) и обработать приемником? приёмник это обычное консольное win32 приложение(когда в визуале пустой проект win32 создаешь) http://www.cyberforum.ru/cpp-beginners/thread939505.html
Как назвать классы? C++
Сразу замечу, что дело происходит в 2D без физики, как таковой. 1) У меня есть классы: Mixer - звуковой движок Graphics - графический движок У звукового движка есть базовый класс: MixerPrimitiveType (некоторая инфа для воспроизведения) от которого наследюутся:
C++ Не удается подключить к приложению gtest и свою статическую либу VS 2010
Здравствуйте, господа. Возникла проблема с линкером в VS 2010 после подключения к консольному приложению собственной же статической библиотеки. В солюшене 2 проекта: 1 - статическая библиотека, 2 - приложение для тестов её функций, к этому приложению подключен gtest через его статическую либу. В 1-м проекте статической библиотеки имеется h-ник с API этой либы. Так как API может оперировать...
C++ Консоль для ведения логов http://www.cyberforum.ru/cpp-beginners/thread939483.html
Не уверен, что пишу туда, куда нужно, но есть только один способ узнать. Интересуют существующие решения по сабжу. Требования простые: - Минимум зависимостей - Цветной текст и фон - Динамические фильтры записей - Много буков - Желательно, отдельный поток и кеширование на диск - Картинки и ссылки приветствуются
C++ Крутящееся колесо Может ли кто написать (срочно) программу крутящееся колесо, исходник чтобы был с комментариями. подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16934 / 5339 / 328
Регистрация: 30.03.2009
Сообщений: 14,343
Записей в блоге: 26
20.08.2013, 12:04     реализация класса в .h файле хорошо или плохо?
Цитата Сообщение от Убежденный Посмотреть сообщение
2) main и test_copy размещены в разных единицах трансляции.
Ты смысл теста неправильно понял. В комментарии перед test_copy написал, почему там атрибут noinline. Размещены они в одном модуле, или не в одном - большой роли не играет. Разница между твоими запусками 1-2 и 3 в том, что было проинлайнена функция test_copy. Но тест ведь вовсе НЕ на инлайн test_copy. Тест на то, что проинлайнятся конструкторы, методы и операторы классе vector, тела которых написаны в инклюдах. Другими словами, мы имеем одномодульный тест, к которому понятие межмодульных оптимизаций (LTCG) не имеет смысла. И вся производительность, вытянутая на этом тесте компилятором за счёт инлайна - она проявляется в одномодульном режиме компиляции за счёт "правильного" написания хидера.

Добавлено через 19 минут
Цитата Сообщение от Evg Посмотреть сообщение
У меня даже появилось соображение, почему тот самый межмодульный режим, которым я пользовался давно, был такой медленный. И даже начинаю верить в твои 3 минуты на 500 файлов
Соображение было следующее. То, с чем я работал раньше, сохраняло в качестве промежуточного представления самую раннюю стадию (т.е. представление высокого уровня очень близко к исходному тексту). Отсутствие замедление компиляции на интеловском компиляторе навело на мысль, что они сохраняют одну из последних стадий представления (т.е. сильно оптимизированное представление, близкое к низкому уровню). На таком представлении уже технически более сложно проводить инлайн и последующие за этим оптимизации (а именно ради последующих оптимизаций и делается инлайн, который сам по себе большого смысла не несёт). А потому последующий инлайн будет работать не сильно эффективно (по сравнению с технологией, которую я видел раньше). Отсюда и такой разброс во времени компиляции.

Попробовал режим -flto на gcc. Предположение по косвенным признакам подтверждается. Попробовал на нашем проекте (порядка 1500 исходников, объём исходников порядка 100 мегабайт). Время компиляции замедлилось несущественно (что-то типа 10%). Производительность не изменилась никак. Возможно, были какие-то ускорения в размерах флуктуаций измерений, но реального увеличения производительности не наблюл.
 
Текущее время: 05:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru