本番環境導入es 6コード
3595 ワード
時は流れ、9102年の末尾に来て、es 6の正式発表から4年半が過ぎた.先端が伸びる中、YUI、ie、jQuery、今、es 5を見送る時だ.
収益はどこですか.
プログラマーが技術的な意思決定を行う際、通常の目的はkpiのために、昇給することであり、この技術は流行している.いや、もちろん業務に価値を生むためだ.
es 6コードを直接導入することで得られるメリットは、次のとおりです.コード体積減少 パフォーマンス向上 構築時間の短縮 コード体積減少
まず、es 6は新しい構文と特性をもたらし、コードをより簡潔にし、コード量を減少させることができる.次に、babelの翻訳後、
Googleエンジニアの試験結果、es 6コードのbundle sizeはes 5コードより50%減少した.私自身の実践の結果はそんなに誇張されていません.25%ぐらいです.
version
bundle size
Gzipped
es5
221kb
39kb
es6
170kb
29kb
私と彼のテスト結果の違いが大きいのは、最終的な結果が一人一人のコードスタイルとコード内容と大きく関係しているからです.私がテストに使うコードはオンラインプロジェクトのコードで、私個人のコードスタイルはes 6/7/8文法を大量に使用していますが、プロジェクト自体はビジネスロジックを書くことが多く、プロジェクトはVueを使用しています.実は多くのjsコードはテンプレートのコンパイル後に生成されたレンダリング関数です.
したがって、es 6のコードはes 5のコード体積より15%〜50%減少し、具体的にどれだけ減少できるかは、コードスタイルおよびコード内容に依存する.コードスタイルが現代的であればあるほど、コードに「生成されたコード」が少なくなり、収益が高くなります.
パフォーマンスの向上
Es 6コードがes 5コードに比べて性能が高い理由は2つあると思います符号量の減少による解析時間の減少は、符号体積の減少 に比例する.運転性能の向上 第一に、ブラウザの解析コード時間の減少は比較的小さく、chromeの
2番目のポイントの場合、ランタイムパフォーマンス.es 6がリリースされたばかりの頃は、jsエンジンが最適化するのに十分な時間がなかったため、多くの新しい特性の性能が低かった.比較すると、es 5およびより古いコードはブラウザの長時間最適化を経ており、es 6が出たばかりの頃は、es 6の性能にも大きな懸念があった.
Githubにはes 6とes 5の性能比較を専門とする倉庫があります.
比較結果から、chrome 72バージョンでは、es 6コードの性能がbabelから変換されたes 5コードよりも優れており、手書きのes 5コードに比べてそれぞれ千秋があり、基本的に55開であることがわかる.
また,ブラウザのes 6に対する性能最適化は持続的であり,最近ではV 8が
実行時のes 6コードとes 5コードの性能比較についても,オンラインプロジェクトを用いて実験を行った.実験方式は以下の通りである.は、 chromeの を直接得ることができる.
実験結果は以下の通り(20回の平均値)
version
記録された運転時間
PerformanceパネルのEvaluate Script
es5
258.88ms
295.29ms
es6
206.28ms
241.59ms
テスト条件下でes 6のコードは20%程度の運転性能向上を遂げた
リスクはどこだ?
jsの運行環境は非常に複雑で、デスクトップ端、移動端、各種ウィジェット、各種webview、node.js,es 6コードを配備できるかどうかは自分で判断するしかない.
私の個人的な経験では、ほとんどの中バックグラウンドプロジェクトはes 6コードを直接配置する条件を備えており、具体的な実施では、es 6をサポートせずにes 5のコードを実行するための降格案があるに違いありません.
実装方法
VueユーザーはVue cliの
非Vue利用者は,この文章で述べたスキームによって行うことができる.おそらく、
すべき はsafari 10がnomoduleをサポートしていないため、 ダウンロードと の を する があることです.(ps:safariブラウザは の )
ダウングレードのスキームは、es 5のみをサポートするブラウザでもコードを できることを しますが、これらの いブラウザは2つのコードをダウンロードし、 が に きいです. いデバイスは 、 パフォーマンスと ネットワーク を し、パフォーマンスの に えられないためです.だから、もしあなたのビジネスがes 5と を つ があるユーザーが20% に したら、 はこの を することに しないと います.
es 5が く ないと できるユーザは、es 6を にサポートするブラウザバージョンに
browserslistの
めくくり
はすべてを って って、es 5も ではありません.
リファレンス deploying-es2015-code-in-production-today https://myst729.github.io/pos...
収益はどこですか.
プログラマーが技術的な意思決定を行う際、通常の目的はkpiのために、昇給することであり、この技術は流行している.いや、もちろん業務に価値を生むためだ.
es 6コードを直接導入することで得られるメリットは、次のとおりです.
まず、es 6は新しい構文と特性をもたらし、コードをより簡潔にし、コード量を減少させることができる.次に、babelの翻訳後、
helper
が生成され、polyfill
が導入され、実行時に処理できない構文特性があり、翻訳中にソースコードを修正しなければならないため、コード量が増加することもあります.もちろん、es 6コードの導入にもbabelが更新された構文の一部を翻訳する必要があります.babelを全く使用しないわけではありません.Googleエンジニアの試験結果、es 6コードのbundle sizeはes 5コードより50%減少した.私自身の実践の結果はそんなに誇張されていません.25%ぐらいです.
version
bundle size
Gzipped
es5
221kb
39kb
es6
170kb
29kb
私と彼のテスト結果の違いが大きいのは、最終的な結果が一人一人のコードスタイルとコード内容と大きく関係しているからです.私がテストに使うコードはオンラインプロジェクトのコードで、私個人のコードスタイルはes 6/7/8文法を大量に使用していますが、プロジェクト自体はビジネスロジックを書くことが多く、プロジェクトはVueを使用しています.実は多くのjsコードはテンプレートのコンパイル後に生成されたレンダリング関数です.
したがって、es 6のコードはes 5のコード体積より15%〜50%減少し、具体的にどれだけ減少できるかは、コードスタイルおよびコード内容に依存する.コードスタイルが現代的であればあるほど、コードに「生成されたコード」が少なくなり、収益が高くなります.
パフォーマンスの向上
Es 6コードがes 5コードに比べて性能が高い理由は2つあると思います
Performance
パネルから、200 kbのjsファイルCompile Scriptを解析するのに10 msかかることがわかります(テストマシンはデスクトップ、i 7/16 G).2番目のポイントの場合、ランタイムパフォーマンス.es 6がリリースされたばかりの頃は、jsエンジンが最適化するのに十分な時間がなかったため、多くの新しい特性の性能が低かった.比較すると、es 5およびより古いコードはブラウザの長時間最適化を経ており、es 6が出たばかりの頃は、es 6の性能にも大きな懸念があった.
Githubにはes 6とes 5の性能比較を専門とする倉庫があります.
比較結果から、chrome 72バージョンでは、es 6コードの性能がbabelから変換されたes 5コードよりも優れており、手書きのes 5コードに比べてそれぞれ千秋があり、基本的に55開であることがわかる.
また,ブラウザのes 6に対する性能最適化は持続的であり,最近ではV 8が
React hooks
のために配列解体の性能を改善する.実行時のes 6コードとes 5コードの性能比較についても,オンラインプロジェクトを用いて実験を行った.実験方式は以下の通りである.
performance API
のパッケージ後のappを利用する.jsファイルの先頭にタイムスタンプを記入する、jsファイルの末尾から開始時間を減算して、1つの時間を得る、周知のように、パッケージ後のapp.jsは即時実行関数であるため、この時間にはappが含まれる.jsファイルの一部のコードの実行時間Performance
パネルを用いる、jsの実行時間Evaluate Script
実験結果は以下の通り(20回の平均値)
version
記録された運転時間
PerformanceパネルのEvaluate Script
es5
258.88ms
295.29ms
es6
206.28ms
241.59ms
テスト条件下でes 6のコードは20%程度の運転性能向上を遂げた
リスクはどこだ?
jsの運行環境は非常に複雑で、デスクトップ端、移動端、各種ウィジェット、各種webview、node.js,es 6コードを配備できるかどうかは自分で判断するしかない.
私の個人的な経験では、ほとんどの中バックグラウンドプロジェクトはes 6コードを直接配置する条件を備えており、具体的な実施では、es 6をサポートせずにes 5のコードを実行するための降格案があるに違いありません.
実装方法
VueユーザーはVue cliの
--modern
を通じて直接現代モードを開くことができる.非Vue利用者は,この文章で述べたスキームによって行うことができる.おそらく、
script
タグのtype=module
をブラウザとしてes 6の検出を全面的にサポートしているかどうか、type=nomodule
によって劣化処理を行う.// module ,
// module ,
すべき はsafari 10がnomoduleをサポートしていないため、 ダウンロードと の を する があることです.(ps:safariブラウザは の )
ダウングレードのスキームは、es 5のみをサポートするブラウザでもコードを できることを しますが、これらの いブラウザは2つのコードをダウンロードし、 が に きいです. いデバイスは 、 パフォーマンスと ネットワーク を し、パフォーマンスの に えられないためです.だから、もしあなたのビジネスがes 5と を つ があるユーザーが20% に したら、 はこの を することに しないと います.
es 5が く ないと できるユーザは、es 6を にサポートするブラウザバージョンに
browserlist
を することができ、ダウングレードスキームを する がなく、 の という の をもたらす.browserslistの
Chrome >= 60
Safari >= 10.1
iOS >= 10.3
Firefox >= 54
Edge >= 15
めくくり
はすべてを って って、es 5も ではありません.
リファレンス