javascript - unshaded - google closurecompiler



TypeScriptのパフォーマンス(asm.js、クロージャコンパイラ)とオーバーヘッド (1)

私たちはチームと他のチームでTypeScriptを完全に評価し、テストしました。すでに使用していますので、ここで私の経験です。

  • TypeScriptはJavaScriptのスーパーセットであり、大部分はパフォーマンス上の妥協なしに1:1のJavaScriptに変換されるため、効率的なJavaScriptの記述方法が分かっていれば、効率的なTypeScriptの記述方法を理解できます。 それほど効率的ではない機能の1つは継承です。これはJavaScriptプロトタイプを使用して「エミュレート」され、JavaScriptで通常よりも多くのコードが生成されます。 したがって、継承は慎重に使用してください。 生成されたJavaScriptを見れば、あなたのコンストラクトが効率的にコンパイルされているかどうかを確認することができます。
  • typescriptをasm.jsにコンパイルすることは、JavaScriptをasm.jsにコンパイルするのと同じ問題です。完全なjavascriptと比較してasm.jsの機能をエミュレートする必要があります。asm.jsにいくつかの部分が必要な場合は、おそらくemscriptenなどでより適切な(動的ではない)言語からコンパイルするか、コンパイルしてください。
  • TypeScriptはいくつかのAMDサポートを持っていますが、私はgoogle closureのサポートについて話すことができません...同様に、非常に異なった方法(新しい構文の代わりにコメントの型とmetainfo)を達成しようとしているので、両方の最大...
  • ファイルサイズは実際問題ではなく、継承をたくさん使用しない限り、読みやすいJavaScriptのファイルサイズに非常に似ています
  • バックボーンやその他のライブラリでTypeScriptを使用すると、JavaScriptに比べて1つの利点があります。 最も一般的なライブラリには既にTypeScript用の型定義ファイルがありますので、自動補完と型チェックをほぼ無料で利用できます。 ファイルサイズの違いは、よく書かれたJavaScriptに比べて問題にはなりません。

TypeScriptはまだ若く、私たちが望んでいた多くのもの(JSLint、コードカバレッジ、TDD、BDDツールなど)は当時欠けていました。 さらに、コンパイラにはいくつかのバグがありました(後で修正されました)ので、使用することを選択しませんでしたが、あなたのリストからのポイントは私たちの本当のターンダウンとして示されませんでした...

アップデート :TypeScriptの可能性を見るには、Visual Studio Online "Monaco"をご覧ください。 彼らが何をしたのかはかなり印象的です。

私は、クライアント側のMVC( Backbone.js + Marionette.jsまたはEmber.js可能性が高い)と組み合わせたTypeScriptを将来のプロジェクトに使用することを検討しています。そのため、パフォーマンスと最適化に関するいくつかの質問があります。

  • TypeScript出力は、ネイティブJavaScriptのパフォーマンスに比べてどのように優れていますか?

  • asm.jsはJavaScriptのサブセットなので、 TypeScriptコードをasm.jsコードに変換することは可能でしょうか? はいの場合は、すでに可能ですか?

  • Google Closure compiler TypeScriptを使用するAMDプロジェクトのビルドを作成することは可能ですか?

  • どのくらいのオーバーヘッドは、ファイルサイズに合わせて平均的に追加されますか?

  • 例えば、小さなプロジェクトでBackbone.jsような軽量ライブラリを使用する場合。 ファイルサイズに関してTypeScriptを使用することは理にかなっていますか?

私はTypeScript利点が気に入っていますが、コーディングスタイルやタイピングのパフォーマンスを犠牲にしたくありません。

特にパフォーマンス、最適化、ビルドに関連する、大きなプロジェクトでのTypeScript使用に関する記事や書籍は大歓迎です!

前もって感謝します !





asm.js