Множество Мандельбро́та — это «множество таких точек C на комплексной плоскости, для которых рекуррентное соотношение
Построение множества Мандельброта проволилось при помощи язака программирования C++ и графической библиотеки SFML.
Расчет FPS проводился этой же библиотекой, а именно через ее функцию getElapsedTime(), предназначенную для получения времени с момента последнего перезапуска. Сохранив в переменные время перед расчетом кадра и после него, будет получен период одного кадра. FPS расчитывается делением 1 на этот период.
Подсчет количества тиков на кадр проводится суммированием тиков, прошедших за расчет 16 или 256 кадров, и последующим делением этой суммы на соответствующее число кадров.
(средние значения за 16 кадров без флагов и за 256 кадров с -O2 и -O3)
| Режим | Обычный режим | For на 4 элемента | Свои интринсики | Встроенные интринсики |
|---|---|---|---|---|
| Без флагов | 391621842 | 895920360 | 3042920762 | 300030294 |
| С -O2 | 168992363 | 103296023 | 100301820 | 56609262 |
| С -O3 | 169114531 | 88787239 | 88098360 | 56553560 |
| Режим | Обычный режим | For на 4 элемента | Свои интринсики | Встроенные интринсики |
|---|---|---|---|---|
| Без флагов | 390027994 | 888555635 | 2877353780 | 297691746 |
| С -O2 | 168448596 | 102458958 | 98666247 | 54669292 |
| С -O3 | 167842295 | 86582224 | 85949780 | 54594858 |
| Режим | Обычный режим | For на 4 элемента | Свои интринсики | Встроенные интринсики |
|---|---|---|---|---|
| Без флагов | 372128741 | 855150485 | 3003620767 | 280895816 |
| С -O2 | 8134841 | 94408590 | 94121836 | 7463574 |
| С -O3 | 7808804 | 7193911 | 80172485 | 7393769 |
Полученные данные показали, что при использовании циклов на 4 элемента без применения флагов оптимизации время отображения кадра значительно повышается, а при интринсиках лишь немного уменьшается. Но при использовании оптимизации компилятора скорость расчета при циклах в 2 раза больше и при интринсиках в 3 раза больше, чем скорость при обычном расчете.
Скорость расчета для цикла при флаге -O3 немного больше, чем с -O2, а при интринсиках она почти одинаковая.
Также видно, что наличие вывода готового изображения почти не повлияло на время работы программы, а отсутствие заполнения точек дало прирост скорости почти в 20 раз для обычного режима и около 10 для остальных, однако разница между режимами почти пропала. Это могло произойти из-за того, что в программе вычисления стали занимать лишь малую часть от времени выполнения, а оставшаяся частьу всех режимов одинаковая.
Экспериментально показано, что добавление циклов на 4 элемента увеличит сложность программы будет неэффективно при отсутствии флагов оптимизации компилятора, но при их наличии этот метод даст прирост скорости вычисления в примерно 2 раза. Добавление интринсиков будет в обоих случаях эффективно, но с флагами оно будет значительно уменьшать время вычислений.