テンプレートエンジンは、元のDKFF(ダイナミックキー機能フォワード)字句解析アルゴリズムとオリジナルDLRD(ダブルレイヤー再帰下降)大幅にコードの量を減らし、アルゴリズムを解析を使用して、学習コストを削減し、ユーザーの利便性を高めるお楽しみください。
:そして、以前のJavaのテンプレートエンジンは、独自のアルゴリズムを大幅に異なる、シンプルなデザインを持って、根本壮大な機会が、ときに最初のリリースポータルで、ここで、テンプレートエンジンを再定義し、非常に経験を冷やす開発JFinal 3.0がリリース再定義テンプレートエンジン
、ビルドに開発者のために設計されたJavaのテンプレートエンジンをお楽しみいただけますので、2つのコアの設計哲学スティック:Javaコードを直接テンプレートにスムーズに対話することができ、まず、第二は、可能な限りとして使用するJava文法規則であり、極端に調査費。
そのため、すぐに使用量の90%を把握し、必要が一つだけの文章を覚えている:JFinalテンプレートエンジンは介して取得するためのJavaの直接的な表現です。
4.8は、最も重要な改善は12.9%の性能を向上させる動的コンパイラ技術の導入でお楽しみください、ローリングFreemarkerの、ベロシティ、Thymeleaf、以下のパフォーマンスは、インテルCore i7の2.2Gマシンのパフォーマンステストの結果、次のとおりです。
パフォーマンスをお楽しみ9.68倍ThymeleafはFreemarkerのはFreemarkerの、ベロシティによる2.86倍の速度で3倍、Thymeleafeはちょうどバイトモードのcharテストモードの上に、バイトモードをサポートしていないです回以上リードし、パフォーマンスを楽しみます。
JavaのベンチマークフレームワークJMH、テストソースを使用して上記のテスト:
https://gitee.com/jfinal/template-benchmark
注:ダイナミック型は近代的なテンプレートエンジン必須であるため、実行時コンパイラ技術をお楽しみくださいまだ、後で動的型付け、いくつかのテンプレートエンジンの変更はサポートされなくなっているバイトコードの最適化を動的型付けのパフォーマンスをサポートしていASM / CGLIBを実行したときに実際の価値があります特長
4.8変更履歴をお楽しみください。
1:新FastFieldGetter、パフォーマンスのアップグレードの前提12.9%の動的な型のサポート
2:構成するEngine.setFastMode(ブール)、速度モードを追加
3:新addDirective(..、..ブールkeepLineBlank)方法、サポートの指示が空白文字の専用線を保持する前と後:出力指令#()の挙動と同じ
4:keepLineBlankに構成#日付、#番号、#エスケープコマンド出力タイプなど、=真
5:出力形式に最適化された注釈、行の終わりの予約コマンドライン文字と同じ行のコメント(別の行には、このような問題に注意していません)
6:パフォーマンスの最適化FastStringWriter
7:ByteWriter、CharWriter再帰最適化whileループ
8:パフォーマンス#escape命令の最適化、直接文字列の連結ライターに出力するのStringBuilder
9:出力出力コマンドは、ブールを削除するために決定されます
10:Engine.removeSharedObject(...)メソッドは(...)addSharedObjectと共に使用することができる追加するシナリオに適し、動的切り替えをサポートするために、オブジェクトを共有
11:設定Engine.setToJdkEncoderFactory()支持utf8mb4符号化された絵文字式に容易JdkEncoderFactory追加
12:改善Utf8Encoder、出会いの文字は、ユーザーエクスペリエンスを向上させる、疑問符出力の代わりに例外をスローする、極端な例でエンコードすることができません
13:EngineConfig.getSharedObjectMap()への公共の可視性
14:テンプレートはパラメータrenderToString()メソッドを追加しません
15:コードは、パフォーマンスを向上させる簡素化するために、NullMethodInfoを追加
16:のgetGlobal、setGlobalの範囲、トップレベルのデータのremoveGlobalサポートがnull
17:リリース増分のための命令の#setシリーズ、デクリメント表現の使用制限