Плохо! Плохо!:  0
Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 29 из 29

Тема: Создание скриптов на RGSS для людей со средними знаниями и экспертов

  1. #21

    По умолчанию

    Добавил две основные главы и одну с сылками. Может однажды я закончу перевод
    Он конечно не идеальный, потому что тема довольно таки непростая, если кто-то грамотнее найдёт ошибки — пишите.


    Dropbox — бесплатное хранилище файлов с прямыми ссылками.

    Humble Bundle — игры, подборки и наборы со скидками.

  2. #22
    Новичок Аватар для SCoon
    Информация о пользователе
    Регистрация
    24.12.2012
    Адрес
    Москва
    Сообщений
    5
    Записей в дневнике
    3
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Arnon Посмотреть сообщение
    Добавил две основные главы и одну с сылками. Может однажды я закончу перевод
    Он конечно не идеальный, потому что тема довольно таки непростая, если кто-то грамотнее найдёт ошибки — пишите.
    Проблем с переводом нет, есть проблемы с оригиналом. К сожалению, помимо здравых мыслей автор местами дает совершенно вздорные советы, а иногда просто фантазирует. Пример (цитата по оригиналу):

    One quoted strings are processed faster by the engine.
    Это фантазия. Пишем тест и получаем результат:

    Код:
    Double: 3.888000011444092
    Single: 3.9579999446868896
    Double: 3.822999954223633
    Single: 3.8399999141693115
    Double: 3.8470001220703125
    Single: 3.825000047683716
    Double: 3.822999954223633
    Single: 3.7880001068115234
    Double: 3.7909998893737793
    Single: 3.8519999980926514
    Double: 3.815999984741211
    Single: 3.8470001220703125
    Double: 3.822999954223633
    Single: 3.8259999752044678
    Double: 3.877000093460083
    Single: 3.944000005722046
    Double: 3.8610000610351562
    Single: 3.883999824523926
    Double: 3.811000108718872
    Single: 3.857999801635742
    Отчетливо видно, что в пределах точности измерений никаких отличий скорости обработки "одинарных" и "двойных" строк нет. Читаем там же далее:

    Don’t use variable embedding if you have just one value. You can just use value.to_s which will convert value into a string.
    Проверка на тесте дает неожиданный результат:

    Код:
    Inline: 10.55400013923645
    Concat: 10.940000057220459
    Inline: 10.526000022888184
    Concat: 10.924999952316284
    Inline: 10.430999994277954
    Concat: 11.036999940872192
    Inline: 10.292999982833862
    Concat: 10.919000148773193
    Inline: 10.253000020980835
    Concat: 10.759000062942505
    Inline: 10.325000047683716
    Concat: 10.876999855041504
    Inline: 10.312999963760376
    Concat: 10.963000059127808
    Inline: 10.270999908447266
    Concat: 10.88699984550476
    Inline: 10.283999919891357
    Concat: 10.791000127792358
    Inline: 10.242000102996826
    Concat: 10.792999982833862
    Т.е. вариант через #{} работает быстрее, чем ручной вызов to_s и конкатенация.

    Объясняется это тем, что ruby, вопреки заблуждениям автора, не интерпретатор. Перед исполнением кода выполняется весьма изощренная оптимизация. И конструкции вида "Foo#{i}" поддаются оптимизации лучше, чем "Foo"+i.to_s.

    Так что читать следует с осторожностью, верить не всему.

  3. #23

    По умолчанию

    SCoon, здравые замечания, я сам тестов не проводил, но и в общем-то никто не агитирует слепо верить статье А в какой среде тесты проводились?
    Хорошо, когда грамотный человек может написанное поставить под сомнение. Я бы даже с интересом ваши комментарии и по остальной информации в статье почитал.


    Dropbox — бесплатное хранилище файлов с прямыми ссылками.

    Humble Bundle — игры, подборки и наборы со скидками.

  4. #24
    Новичок Аватар для SCoon
    Информация о пользователе
    Регистрация
    24.12.2012
    Адрес
    Москва
    Сообщений
    5
    Записей в дневнике
    3
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Arnon Посмотреть сообщение
    А в какой среде тесты проводились?
    VX Ace

    Я бы даже с интересом ваши комментарии и по остальной информации в статье почитал.
    Ежели лень смогу победить...

  5. #25
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Спасибо, SCoon, за то что поднял тему на главную.
    И огромное спасибо Arnon'у за написание ее.
    По поводу:
    " И конструкции вида "Foo#{i}" поддаются оптимизации лучше, чем "Foo"+i.to_s."
    На самом деле 1 операция работает быстрее чем 3.

    Сейчас объясню поподробнее: строка Foo#{i} создает объект-строку и помещает ее кучу(надеюсь в Ruby все такие есть понятие "куча").
    А давайте проследим что делает строка "Foo"+i.to_s." первым делом она делает объект "Foo" и помещает его в кучу. Затем она делает объект строку - i.to_s(вторая операция) и помещает его в кучу...далее она делает сложение строк, результатом которой есть третий объект "Foo"+i.to_s."(вот она третья операция)....
    Итого: мы сделали 3 операции и два лишних объекта в куче...
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

  6. #26
    Новичок Аватар для SCoon
    Информация о пользователе
    Регистрация
    24.12.2012
    Адрес
    Москва
    Сообщений
    5
    Записей в дневнике
    3
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Рыб Посмотреть сообщение
    строка Foo#{i} создает объект-строку и помещает ее кучу
    Не совсем. Где ruby возьмет значение этой строки -- при компиляции оно еще не известно, в нем есть переменная i? Соответственно, при исполнении в некотором буфере будет размещен префикс "Foo", затем для i будет вызван to_s и произведена конкатенация. Но в этом варианте не обязательно будет использована куча. Вполне может быть задействован статический временный буфер.

    Т.е. операций все равно будет три, но выполняться они будут чуть иначе. И, как оказалось, чуть быстрее.

  7. #27
    Новичок Аватар для SCoon
    Информация о пользователе
    Регистрация
    24.12.2012
    Адрес
    Москва
    Сообщений
    5
    Записей в дневнике
    3
    Репутация: 1 Добавить или отнять репутацию

    По умолчанию

    Чтобы не засорять тред, запостил еще один комментарий к оригиналу в дневнике.

  8. #28
    Хранитель Форума Аватар для Валера
    Информация о пользователе
    Регистрация
    15.04.2008
    Адрес
    Москва
    Сообщений
    14,006
    Записей в дневнике
    3
    Репутация: 166 Добавить или отнять репутацию

    По умолчанию

    Очень рад, что у нас поселилось новое светило скриптинга! Надеюсь, наше сотрудничество будет плодотворным и длительным! ))

    Спойлер И как тебе не стыдно-то, а, Валера?:


    Оборона форта: http://rghost.ru/8kLGxFtD2
    Сделать, чтоб все происходило, как я хочу, - вот, собственно, и весь мейкер!
    Адский Рейд: http://rpgmaker.su/vbdownloads.php?d...downloadid=106

  9. #29
    Маститый Аватар для Рыб
    Информация о пользователе
    Регистрация
    12.11.2008
    Адрес
    [ДАННЫЕ УДАЛЕНЫ]
    Сообщений
    1,421
    Записей в дневнике
    50
    Репутация: 55 Добавить или отнять репутацию

    По умолчанию

    Ладно, как в Ruby все неоднозначно, по сравнению с Java)))
    Twitch <- Тут иногда делаю вид, что умею играть или работать, в прямом эфире
    GitLab <- Тут иногда делаю вид, что умею программировать
    Github <- Еще какая-то дичь, тут иногда появляется, но с мукером не связана
    Notion<- Тут иногда делаю вид что умею планировать

Страница 3 из 3 ПерваяПервая 123

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Создание скриптов на RGSS для людей со средними знаниями и экспертов