サーバサイドWebアプリケーションによる静的および動的コンパイル言語の性能比較

書誌事項

タイトル別名
  • Performance Evaluation of Statically and Dynamically Compiled Langauges Using a Server-side Web Application

この論文をさがす

抄録

Webアプリケーション開発においては,動的コンパイル言語やスクリプト言語が実装言語として選択されることが多い.これは,静的コンパイル言語に比べてデプロイに必要な時間が短く,新しい機能やバグ修正を迅速にリリースでき,開発生産性の向上に寄与するためと考えられる.しかし,近年のコンテナ技術や継続的インテグレーション・継続的デリバリーの普及により,静的コンパイル言語を用いたWebアプリケーションの開発においても動的コンパイル言語やスクリプト言語と遜色ない生産性を実現する環境が整いつつある.本発表では,静的コンパイル言語のGoと動的コンパイル言語のJavaおよびJavaScriptで実装されたWebアプリケーションの性能評価結果を報告する.WebアプリケーションであるAcme Airベンチマークの各言語での実装を使用して性能評価を行い,Goによる実装はJavaScriptに対して約1.6倍,Javaに対して約1.8倍のスループットを達成することを確認した.性能プロファイルの分析によると,GoのWebフレームワークはJavaのWebフレームワークに比べてREST型Webリクエストの処理に必要なコードフットプリントが少なく,また,動的型付けのJavaScriptと比較して静的型付けのGoはランタイム検査のオーバヘッドが少ないことが判明した.GoはJavaおよびJavaScriptに対して優位な性能を示しており,Webアプリケーションにおいても静的コンパイル言語の普及が期待される.

Dynamically compiled or scripting languages are usually preferred in Web application development, since it is believed that such languages allows us to deploy applications quickly to deliver new features and bug fixes in a timely manner, and make Web application development productive. Statically compiled languages, however, begin to be used for Web applications, since emerging container technologies and continuous integration/delivery methodologies can eliminate some of the shortcomings in statically compiled languages. In this presentation, we compared the Go language, a popular statically compiled language, with two dynamically compiled languages, JavaScript and Java. We evaluated the Acme Air benchmark for three implementations - one in each language. Our experimental results have shown that the Go implementation achieved a 1.6 times and 1.8 times higher throughput than the JavaScript and Java implementations respectively. The performance profiles indicated that this is primarily because the Web framework for Go has less code footprint to process REST requests than that for Java, and because statically-typed Go suffers less overhead in dynamic checking of objects than dynamically-typed JavaScript. We argue that statically compiled languages will play more significant roles for Web applications.

収録刊行物

詳細情報 詳細情報について

  • CRID
    1050846638326336512
  • NII論文ID
    170000181629
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00202871/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ