Программа 1+:o
на эзотерическом языке программирования ><> (Рыба) замедляется со временем, и я не знаю почему. Это замедляется больше всего на :
, который дублирует элемент в верхней части стека и несколько замедляется на o
, который печатает соответствующий символ для верхнего элемента в стеке. Вы можете попробовать: here; просто убедитесь, что инициализируйте стек с помощью 0. Это замедляется быстрее на мобильных устройствах (источник: мой телефон), если вы хотите проверить меньше времени.Почему эта программа в><> (Рыба) работает так медленно через какое-то время?
ответ
никогда не слышал этого языка раньше, но здесь некоторые возможности:
ваш выход увеличивающиеся
- поэтому каждая итерация вы получили больше 1 символ, чтобы показать
- если ваш brownser не есть какой-то умный освежающий
- тогда это будет замедлять темп для более высоких
n
не имеют понятия, что вы делаете, как язык не чужд мне
- , но похоже, что вы также увеличивают некоторый массив/стек/кучу/независимо от размера
- по одному пункту каждый итерация, которая принимает модуль памяти
- и на телефонах есть не так много, доступны
- не говоря уже о переездах ...
выход выглядит она в Unicode
- и как только вы попали в специальные символы, то это зависит от шрифтов, установленных
- некоторые персонажи довольно медленно.
- Обычная политика заключается в том, чтобы найти использованную кодовую страницу в установленных шрифтах, которая может занять некоторое время
- , а сама рендеринг также для некоторых символов не очень хороша.
- Если у вас есть шрифт Unicode (а не только куски), он должен значительно ускорить процесс (особенно растровые шрифты).
- Но их там не так много, и они никогда не видели ничего, что было бы полным (это было огромным), но это время я искал тех ...
- здесь один из примеров «полного» юникодного шрифта GNU_Unifont
Я программируюсь> <> раньше, поэтому я дам свой взгляд на него.
Лично я не испытывал большого замедления программы при запуске на моем компьютере. Я запустил его с анимацией, поэтому я мог видеть, что происходит со стеком и скоростью выполнения.
Операции стека, похоже, происходят с одинаковой скоростью все время. Я запускал его за 3300. Выход замедляется, но это потому, что наборы символов для иностранных языков используют символы, которые каким-то образом объединяются или взаимодействуют друг с другом. Это основная причина визуального замедления, так как вывод должен быть переписан, поскольку некоторые символы печатаются рядом друг с другом. Так что, действительно, факт использования памяти увеличивается дольше, чем вы ее запускаете, и того факта, что выход нетипичен.
Также был напечатан символ RTL (справа налево), поэтому все выходные данные, следующие за этим символом, отображаются справа налево, а браузер не используется и не может быть оптимизирован.
Другой способ, который я могу сказать, что выход замедляет работу браузера, заключается в том, что при приостановке выполнения программы страница все еще медленная. Я попытался увеличить/уменьшить масштаб, и в некоторых случаях для вывода результата потребовалось несколько секунд.
На моем компьютере нет замедления до ~ 1000. На каком индексе вы видите замедление? Считаете ли вы использование другого переводчика? Я не думаю, что это связано с особенностью самого языка, больше похоже на проблему реализации. – Bentoy13
Спецификации языка: https://esolangs.org/wiki/Fish – mbomb007