追加設定不要のパフォーマンス最適化

目次

  1. 設計時の検証
  2. コードの制御および最適化

OutSystemsでは、設計時に検証を行うことで、すべてのアプリケーションにパフォーマンスのボトルネックがないことを開発者が確認できるようにします。アプリケーションにソースコードを生成する際、OutSystemsはすべてのアプリケーションレイヤーでコードのパフォーマンスを最適化します。OutSystemsは、データベースにアクセスする接続数から各ページのサイズまで、目的とするアプリケーションに最適な機能を提供します。

設計時の検証


OutSystemsのビジュアルエディタには、パフォーマンスの検証テストが含まれます。これにより、開発者はアプリケーションをデプロイする前にパフォーマンスのボトルネックを把握できます。

このことを可能にするTrueChangeエンジンは、潜在的なエラー、スケーラビリティやパフォーマンスのボトルネック、また依存関係の不整合を報告します。

以下のような問題点が報告されます。

  • メモリに大量のデータを保持している
  • データベーステーブルのモデリングが非効率
  • データベースアクセスが非効率
  • ロジックが必要以上のデータを処理している

コードの制御および最適化


OutSystemsが生成したすべてのコードは、開発中のアプリケーションが正しく動作し、スケーラビリティと信頼性の問題を回避するために最適化されます。帯域幅のボトルネックを解消するため、圧縮によってページサイズを最適化します。自動Ajaxキューにより、エンドユーザーが複数のAjaxリクエストを同時に行ってサーバーに大きな影響を及ぼすことはありません。重複したAjaxリクエストをスマートに防止することで、同一のリクエストがサーバーに送信されることはありません。また、Ajaxを使用した部分的な画面描画により、データ転送量がさらに削減され、ユーザーエクスペリエンスが向上します。

データベース取得を削減することで、開発者のコーディング内容にかかわらず、アプリケーションで効率的に使用されているデータのみがデータベースから取得されるようになります。データベース-メモリ間の優れたアルゴリズムにより、データセットのメモリへの読み込みを最終手段としてのみ実施することで、使用するメモリを最低限に抑えます。データベース接続プーリングにより、OSネットワーク、データベースリソースの過剰な利用を防ぎ、接続解放をスマートに行うことで、OSやネットワーク、データベースによるリソースの消費を削減します。

トランザクションのスマートなコミット、ロールバック、リリースにより、データベースの更新漏れをなくし、エラー発生時にはデータベースが更新されないようにします。主キーと外部キーのインデックス作成を自動化することで、よく使用されるデータベースクエリを最適化します。データベースタイムアウトの制御により、大量のクエリがアプリケーションやデータベース環境のパフォーマンスに影響を与えるリスクを排除します。

アダプタタイムアウトの制御により、カスタムコード化されたコンポーネントや統合がアプリケーションのパフォーマンスに影響を与えるリスクを排除します。非同期で一括ロギングを行うことで、ロギングアクティビティがエンドユーザーやビジネスイベントに影響を与えることがなく、また、ビルトインログローテーションにより、データベースログが際限なく増加することはありません。

スケジューラスロットリング機能により、スケジュール設定がうまくプログラミングされずに負荷が高くなっている場合でも、処理能力がすべて使用されることがありません。トランザクションをデプロイすることで、アプリケーションが正確にデプロイされ、アプリケーションのコンポーネントで互換性のないバージョンが同時に実行されることはありません。 

マルチテナントデータの分離と制御により、チームは完全にデータを分離して複数のアプリケーションを操作できます。