По результатам нескольких независимых исследований было установлено количественное влияние изменения fillfactor на производительность PostgreSQL при массовых UPDATE операциях. Ключевые данные по производительности
Влияние на скорость UPDATE операций:
Fillfactor 90% (снижение на 10%): улучшение производительности на 17-20%
Fillfactor 80% (снижение на 20%): улучшение производительности на 48-50%
Fillfactor 70% (снижение на 30%): улучшение производительности на 65%
Performance improvement percentages for different fillfactor values in PostgreSQL UPDATE operations
Влияние на TPS (транзакций в секунду):
При fillfactor 100%: 180-200 TPS
При fillfactor 90%: 230 TPS (улучшение на 15%)
Влияние на время выполнения UPDATE:
Fillfactor 100%: 3.35 секунды
Fillfactor 90%: 2.77 секунды (улучшение на 17.3%)
Fillfactor 80%: 1.73 секунды (улучшение на 48.4%)
Fillfactor 70%: 1.16 секунды (улучшение на 65.4%)
Механизм улучшения производительности
HOT Updates (Heap Only Tuples): Снижение fillfactor напрямую влияет на возможность выполнения HOT-обновлений:
При fillfactor 100%: 0% HOT-обновлений
При fillfactor 90%: 32% HOT-обновлений
При fillfactor 80%: 73% HOT-обновлений
При fillfactor 70%: 100% HOT-обновлений
Relationship between fillfactor, HOT update ratio, and performance improvement in PostgreSQL
Практические рекомендации
Для снижения fillfactor на 50% (с 100% до 50%): Основываясь на исследованиях, можно ожидать:
Улучшение производительности UPDATE на 50-70%
Увеличение потребления места на диске вдвое
Снижение производительности SELECT на 20-30% из-за большего количества страниц
Оптимальные значения:
Fillfactor 80-90% - наиболее сбалансированный вариант для активно обновляемых таблиц
Fillfactor 70% - для таблиц с очень интенсивными UPDATE операциями
Fillfactor 50% - только для специальных случаев с экстремальной нагрузкой на обновления
Негативные эффекты снижения fillfactor:
Увеличение размера таблицы и индексов
Снижение эффективности кэширования (больше страниц в памяти)
Замедление операций полного сканирования таблицы
Увеличение нагрузки на autovacuum
Когда применять:
Таблицы с частыми UPDATE операциями
Обновления затрагивают неиндексированные колонки
Соотношение UPDATE к SELECT превышает 1:3
Методика тестирования
Для получения точных результатов в вашей среде рекомендуется:
Создать тестовые таблицы с разными значениями fillfactor
Использовать pgbench для имитации реальной нагрузки
Измерять не только время выполнения, но и процент HOT-обновлений
Учитывать влияние на общую производительность системы
Таким образом, снижение fillfactor на 50% может дать прирост производительности UPDATE операций на 50-70%, но за счет значительного увеличения потребления дискового пространства и снижения производительности операций чтения.
В свое время интересовался этим, когда выводил на рынок браузерку «Пароград»
1. Начинал со stand alone версии, как софтланч. Трафик — с пиара и сарафанного радио.
2. Затем интегрировался в социальные сети. Трафик с каталога и виралки.
3. Затем встал на площадку РБК. Трафик по рефшаре — то есть часть денег, которые платят пользователи идут плащадке, за это она нагоняет людей.
Но в целом надо делать игру, показатели которой позволяют покупать трафик. Только в этом случае игра будет успешной.
Хорошая, годная реклама курсов вышки.
На протяжении последних 8 лет работая в игровой индустрии на разных должностях я никому никогда не показывал своего диплома. Не то, что бы его стыжусь — а просто никто не спрашивал. Проводя собеседования на должность геймдиза (а это тоже входит в сферу моих обязанностей) — я и сам ни разу не интересовался дипломом соискателя — дела говорят за себя лучше чем бумажки, и собственный проект или отлично выполненное тестовое для меня значительней любых дипломов.
Как один из людей, купивший вашу игру, и как человек с опытом в игровой индустрии — от себя замечу: кроме уже объявленных причин есть еще одна — попытка скопировать игру «лоб», не адаптируя ее под современные реали. Некоторые механики неплохо работали в изначальной книге — но плохо работают в приложении. Так же в игру перешел весь баланс из книги (который тоже был явно с ошибками). В качестве примера — посмотрите LifeLine, там ряд геймдизайнерских решений, которые сделали игру более «играбельной»
Чутка гугления, чутка нейросети что бы
объединить их всех и лишить их воличто бы было читаемо и понятно.Ссылки на источники конечно можно
https://www.cybertec-postgresql.com/en/what-is-fillfactor-and-how-does-it-affect-postgresql-performance/
https://www.razsamuel.com/understanding-hot-updates-in-postgresql-a-benchmark-analysis/
https://learn.microsoft.com/en-us/sql/relational-databases/indexes/specify-fill-factor-for-an-index?view=sql-server-ver17
https://habr.com/ru/companies/otus/articles/905882/
https://stackoverflow.com/questions/69601803/tuning-fillfactor-for-high-update-tables-in-postgres-13
https://www.geeksforgeeks.org/sql/sql-fill-factor-and-performance/
https://dba.stackexchange.com/questions/56735/postgresql-when-should-i-use-fillfactor-100-for-tables-on-ssd
https://www.sqlshack.com/sql-server-index-fill-factor-with-performance-benchmark/
По результатам нескольких независимых исследований было установлено количественное влияние изменения fillfactor на производительность PostgreSQL при массовых UPDATE операциях.
Ключевые данные по производительности
Влияние на скорость UPDATE операций:
Fillfactor 90% (снижение на 10%): улучшение производительности на 17-20%
Fillfactor 80% (снижение на 20%): улучшение производительности на 48-50%
Fillfactor 70% (снижение на 30%): улучшение производительности на 65%
Влияние на TPS (транзакций в секунду):
При fillfactor 100%: 180-200 TPS
При fillfactor 90%: 230 TPS (улучшение на 15%)
Влияние на время выполнения UPDATE:
Fillfactor 100%: 3.35 секунды
Fillfactor 90%: 2.77 секунды (улучшение на 17.3%)
Fillfactor 80%: 1.73 секунды (улучшение на 48.4%)
Fillfactor 70%: 1.16 секунды (улучшение на 65.4%)
Механизм улучшения производительности
HOT Updates (Heap Only Tuples):
Снижение fillfactor напрямую влияет на возможность выполнения HOT-обновлений:
При fillfactor 100%: 0% HOT-обновлений
При fillfactor 90%: 32% HOT-обновлений
При fillfactor 80%: 73% HOT-обновлений
При fillfactor 70%: 100% HOT-обновлений
Практические рекомендации
Для снижения fillfactor на 50% (с 100% до 50%):
Основываясь на исследованиях, можно ожидать:
Улучшение производительности UPDATE на 50-70%
Увеличение потребления места на диске вдвое
Снижение производительности SELECT на 20-30% из-за большего количества страниц
Оптимальные значения:
Fillfactor 80-90% - наиболее сбалансированный вариант для активно обновляемых таблиц
Fillfactor 70% - для таблиц с очень интенсивными UPDATE операциями
Fillfactor 50% - только для специальных случаев с экстремальной нагрузкой на обновления
Негативные эффекты снижения fillfactor:
Увеличение размера таблицы и индексов
Снижение эффективности кэширования (больше страниц в памяти)
Замедление операций полного сканирования таблицы
Увеличение нагрузки на autovacuum
Когда применять:
Таблицы с частыми UPDATE операциями
Обновления затрагивают неиндексированные колонки
Соотношение UPDATE к SELECT превышает 1:3
Методика тестирования
Для получения точных результатов в вашей среде рекомендуется:
Создать тестовые таблицы с разными значениями fillfactor
Использовать pgbench для имитации реальной нагрузки
Измерять не только время выполнения, но и процент HOT-обновлений
Учитывать влияние на общую производительность системы
Таким образом, снижение fillfactor на 50% может дать прирост производительности UPDATE операций на 50-70%, но за счет значительного увеличения потребления дискового пространства и снижения производительности операций чтения.
1. Начинал со stand alone версии, как софтланч. Трафик — с пиара и сарафанного радио.
2. Затем интегрировался в социальные сети. Трафик с каталога и виралки.
3. Затем встал на площадку РБК. Трафик по рефшаре — то есть часть денег, которые платят пользователи идут плащадке, за это она нагоняет людей.
Но в целом надо делать игру, показатели которой позволяют покупать трафик. Только в этом случае игра будет успешной.
www.coursera.org/specializations/game-development — Митчеганский институт + Конгрегейт.
www.udemy.com/unitycourse/?dtcode=gH94IE63HgsN — использование Юнити для создания игр
www.udemy.com/how-to-make-20-games-without-coding-and-earn-passive-income — двадцать казуальных игр без опыта в программировании.
Все эти курсы рассчитаны для начинающих, порог входа низкий, да и цена не так кусается.
Хорошая, годная реклама курсов вышки.На протяжении последних 8 лет работая в игровой индустрии на разных должностях я никому никогда не показывал своего диплома. Не то, что бы его стыжусь — а просто никто не спрашивал. Проводя собеседования на должность геймдиза (а это тоже входит в сферу моих обязанностей) — я и сам ни разу не интересовался дипломом соискателя — дела говорят за себя лучше чем бумажки, и собственный проект или отлично выполненное тестовое для меня значительней любых дипломов.
1. www.gamasutra.com
2. www.gamesprecipice.com
3. sergeiklimov.biz
4. gamedevblogs.ru
5. www.uraldev.ru
6. torick.ru
Поесть уху с малознакомыми коллегами — это не то, чего ждешь от встречи с разработчиками.