Помните старые добрые времена, когда открытие простого документа или веб-страницы было мучительно медленным, так как оно занимало все скудные ресурсы вашего компьютера? И сегодня делать то же самое еще медленнее, несмотря на то, что ваш процессор работает в сотни раз быстрее и имеет доступ к тысячам раз больше памяти?
Чтобы смоделировать эффект раздувания в текущих средствах просмотра документов и аналогичных приложениях, напишите программу, которая имеет видимые проблемы с производительностью при запуске на более мощных машинах .
Чтобы у каждого была общая задача, сделайте ее генератором простых чисел .
- Программа должна печатать последовательные простые числа, начиная с 2, каждое в новой строке, и ничего больше. Стоит до этого навсегда (или пока не кончится память). Как это:
2 3 5 7 11 13 17
Между печатью каждой строки должна быть задержка, достаточная для восприятия человеком.
Эта задержка должна быть больше, поскольку машина, на которой работает программа, становится быстрее. Чем быстрее машина, тем медленнее программа.
Я не буду указывать точные контрольные показатели, поскольку они могут стать субъективными, но должна быть ощутимая разница в скорости на двух разных машинах, если между двумя машинами существует существенная разница.
Скорость программы не должна монотонно уменьшаться на всех когда-либо созданных машинах. Это было бы трудно определить, и еще сложнее проверить. Я доверяю здравому смыслу участников соревнований относительно того, что можно считать существенно отличной производительностью для машин, и этого достаточно, чтобы удовлетворить это.
Я также не буду указывать точные верхние или нижние ограничения по времени, но это должно быть в разумных пределах, поэтому, пожалуйста, не указывайте ни дня, ни года между двумя строками.
Я не буду требовать, чтобы он работал на всем от Eniac до современности, но он должен быть достаточно общим, например, нельзя говорить, что он работает только на двух конкретных типах CPU, и определенно определяет имя одного конкретного CPU на котором он будет работать медленнее или быстрее.
Код не должен полагаться на версию компилятора или интерпретатора. Он должен работать, если одна и та же версия компилятора / интерпретатора установлена как на более медленной, так и на более быстрой машине, или даже если двоичный / байт-код скомпилирован на одной машине, а затем запущен на двух разных машинах.
Пожалуйста, объясните принципы работы вашей программы. Поскольку будет трудно воспроизвести результаты, достоверность ответа может зависеть от осуществимости метода.
Хотя мне бы хотелось, чтобы он превратился в закулисное соревнование, к сожалению, этот сайт уже не «Программирование головоломок и Code Golf», а просто «Code Golf», поэтому выигрывает самый короткий код.