サブアプリのシートを閉じるタイミングによる処理内容の違い
2019-07-29 22:06
サブアプリのシートで一度表示したシートを閉じる際、
すぐに閉じるか、いくつかの処理してから閉じるかで閉じるのにかかる時間が大幅に変わる事象が発生しています。
時間の計測は「シートを閉じる」という処理の直前直後にログを仕込んで確認しています。
ちなみに、シートを処理の前に閉じると、そのあとの処理が実行されないのではと思ったのですが、
少なくとも、こちらの環境のテストでは、処理の前後のどちらでシートを閉じても取得できる結果は同じでした。
サブアプリの内容は、各アプリから共通的に参照する商品、店舗、組織などのマスタデータを
DBから取得してシートに張り付けるという処理をするもので、
代表のシートを「表示」すると、そのシートの初期処理の中で
マスタデータを各シートに張り付けていく、という処理を行っています。
このサブアプリの代表シートを表示した後、「すぐに閉じて」からマスタ取得処理をするのと、
マスタ取得処理をし終わってから閉じるのとでは、
後者の時間のほうがかなり長くなります。
内部的なメモリの開放に時間がかかっているのでしょうか。
処理の前、後のどちらで閉じても結果が同じ(各シートにマスタデータはすべて張り付けられている)ので、
何が違っているのかがわかりません。
回答を投稿するにはログインが必要です。
マスタ取得処理がある分、メモリを使用しその分開放もしなければならいないため、時間がかかると思います。また、マスタ取得処理によってシート上に大量のデータや複雑な数式や書式を使用している場合はその分メモリを使用するので、パフォーマンスにも影響している可能性があるかもしれません。