【毎月更新】Redmine リリース前の新機能を先行チェック!パフォーマンスの改善に関するコミットを紹介(2025年1月コミット分)
Redmine公式サイトでコミット済みの未リリースの新機能を毎月紹介します。より便利になるRedmineの機能を一足先にチェックしましょう。
今月は2025年1月にコミットされたチケットの中から、Redmineのパフォーマンス改善に関するチケットを5つ紹介します。
- TimeEntryActivity#default_activity_id メソッドを最適化しSQLクエリを削減する
- IssuesController#show メソッドを最適化しSQLクエリを削減する
- Member#role_ids= メソッドをリファクタリングし可読性と効率性を向上
- Version#wiki_page メソッドを最適化しSQLクエリを削減する
- 活動画面を最適化しパフォーマンスを改善
Redmineとは:
Redmineはオープンソースのプロジェクト管理ソフトウェアです。オンプレミスのサーバなど自前の環境に自由にインストールできるほか、 クラウドサービス も利用できます。Redmineについて詳しくは Redmine.JP (Redmine日本語情報サイト)をご覧ください。
TimeEntryActivity#default_activity_id メソッドを最適化しSQLクエリを削減する
TimeEntryActivity#default_activity_id
メソッドは、時間管理の作業分類のデフォルト値を決定するメソッドです。このメソッドは、ひとつのチケットを表示する場合にも呼び出されます。
その際、ユーザーのロールやシステム全体のデフォルト値など、複数の条件を考慮するような仕組みになっています。
例えば、ロールにデフォルト値が設定されていればその値に決定できますが、先にその値が見つかったとしても他の条件を全てチェックしてから決定するように作られています。そのため、実行する必要のないSQLクエリが実行されるようになっています。
次期バージョンでは、デフォルトの作業分類が決定された時点で直ちに処理を終了できるようにこのメソッドが修正されます。これにより不要なSQLクエリが実行されなくなり、パフォーマンスが改善します。
- 利用できる予定のバージョン:Redmine 6.1.0
- 公式サイトのチケット:Feature #42150: Optimize TimeEntryActivity#defaultactivityid method by introducing early returns to reduce SQL queries
IssuesController#show メソッドを最適化しSQLクエリを削減する
IssuesController#show
メソッドは、「時間管理」モジュールが無効の場合でも時間管理に関するデータベースや関連データを読み込もうとするように作られています。
次期バージョンでは、「時間管理」モジュールが有効な場合にのみ時間管理に関するSQLクエリを実行するようにこのメソッドが改善されます。これにより不要なSQLクエリが実行されなくなり、パフォーマンスが改善します。
- 利用できる予定のバージョン:Redmine 6.1.0
- 公式サイトのチケット:Feature #42144: Optimize IssuesController#show by skipping time tracking queries when disabled
Member#role_ids= メソッドをリファクタリングし可読性と効率性を向上
次期バージョンでは Member#role_ids=
メソッドをリファクタリングし、不要な MemberRole
レコードの識別と削除の処理を簡素化することで、可読性と効率性を向上します。
- 利用できる予定のバージョン:Redmine 6.1.0
- 公式サイトのチケット:Patch #42124: Refactor
Member#role_ids=
method for improved clarity and effficiency in removing obsolete member roles
Version#wiki_page メソッドを最適化しSQLクエリを削減する
Version#wiki_page
メソッドは、 wiki_page_title
が空の場合でも project.wiki
を評価するように作られています。これにより、不要な SQL クエリが wikis
テーブルに対して実行されてしまう場合があります。
次期バージョンでは、wiki_page_title
が存在する場合にのみ project.wiki
を評価するようにこのメソッドが改善されます。これにより不要なSQLクエリが実行されなくなり、パフォーマンスが改善します。
- 利用できる予定のバージョン:Redmine 6.1.0
- 公式サイトのチケット:Feature #42121: Optimize Version#wiki_page method
活動画面を最適化しパフォーマンスを改善
活動画面において、各履歴に対して複数のSQLクエリが発生し、パフォーマンスの問題を引き起こす可能性があります。
次期バージョンでは、Journal#journalized
メソッドの修正と acts_as_activity_provider
の :scope
パラメータが修正されます。これにより不要なSQLクエリが実行されなくなり、パフォーマンスが改善します。
- 利用できる予定のバージョン:Redmine 6.1.0
- 公式サイトのチケット:Feature #42077: Optimize activity view performance through association preloading for journals
Redmineの新機能を先行して利用できる「RedMica」
Redmine互換のオープンソースソフトウェアRedMica (ファーエンドテクノロジー版Redmine)では、Redmineの次期バージョンの新機能を先行して利用できます。
RedMicaが今すぐ使えるサービス「My Redmine」
「My Redmine」は、RedMicaの開発者ファーエンドテクノロジーが提供するクラウドサービスです。無料でお試しできます。
バックナンバー(過去1年分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!チケット一覧で担当者と作成者の列に表示される自分の名前を太字にするなど(2024年12月までコミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!チケットの担当者として「作成者」や「直前担当者」が選択しやすくなる改善など(2024年9月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!作業時間の入力欄にプレースホルダ「h:mm」表示など(2024年8月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!カスタムフィールドの数値に3桁区切りのカンマ表示など(2024年7月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!予定工数と進捗率から残りの作業時間を算出する残工数など(2024年6月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!チケットの進捗率の間隔を10%または5%から選択など(2024年5月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!チケットにファイル添付のみでメール通知を送信など(2024年4月コミット分)
- 【毎月更新】Redmine リリース前の新機能を先行チェック!ウェルカムメッセージのデフォルト値を追加など(2024年2月コミット分)