vladd56
@vladd56
Пенсионер

Когда следует создавать функции?

Здравствуйте.
Я заметил что при создании функций для лучшего чтения кода основной программы время исполнения заметно растёт при вызове функции и входа в неё..
Сначала стремился сократить количество строк кода за счёт создания функций из за которых количество строк кода могло быть уменьшено. Для лучшей читаемости кода. Но понял что это ведёт к увеличению времени исполнения программы.
Поэтому вопрос когда следует создавать функции? Правильно ли я сделал выводы относительно увеличения времени исполнения программы из за функций? Прошу помощи.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
oshliaer
@oshliaer
Google Products Expert
Пример заметного количества функций https://github.com/contributorpw/lodashgs/blob/mas... Время работы скрипта растет минимально. Многие пользуются. Дело не в размере. Тем более, что скрипты хорошенько сжимаются перед исполнением. И вот этот файл https://github.com/contributorpw/alasqlgs/blob/mas... (не открывать при медленной сети) работает нормально даже в качестве пользовательской функции, а там, на секундочку, всего полминуты времени исполнения.

Вы привели в примере SpreadsheetApp.flush(). Этот метод останавливает все расчеты и пересчитывает все, что находится у вас в Таблице. Вероятно, из-за него у вас и проблемы.

Судя по предыдущим вашим вопросам, вы усиливаете работу интерфейса, давите на впечатление. Ну, так в браузере оно будет работать так как будет работать, и заставить это всё работать быстрее не получится.

Совет. Откажитесь от
Всё выделяется сразу. Теперь видно с каким диапазоном работаю. Намного более понятно что попадает в значения диапазона.

, потому что это все ерунда, и никому не надо смотреть на экран, чтобы понимать, что там работает, а что нет. Пользователю нужно знать три вещи:
  1. Еще не считало
  2. Еще считает
  3. Уже посчитало

Остальное для него мрак и туман, а вы тратите на них время.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
stomaks
@stomaks
Разработчик Google Apps Script (stomaks.me)
Ну без кода говорить о какой либо оптимизации нет смысла.

Общие принципы такие, старайтесь реже обращаться к документам и диску, если вы это делаете.

Если вы работает с таблицей старайтесь реже перерисовывать интерфейс (spreadsheet.flush()).

Опять же нужен ваш код чтобы понимать что вы делаете.
Ответ написан
hint000
@hint000
у админа три руки
время исполнения заметно растёт при вызове функции и входа в неё

То, что время растёт - это закономерно. Но вот заметно расти будет в том случае, когда функция вызывается внутри цикла и цикл исполняется сотни..тысячи раз. Единичные вызовы не должны давать сколько-нибудь заметного замедления.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы