Selective Just-in-Time Compilation for Client-side Mobile Java']JavaScript Engine

被引:0
|
作者
Lee, Seong-Won [1 ]
Moon, Soo-Mook [1 ]
机构
[1] Seoul Natl Univ, Sch Elect Engn & Comp Sci, Seoul, South Korea
关键词
!text type='Java']Java[!/text]Script engines; SFX; selective compilation; hot spot detection;
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Smart phone's full web browsing requires a high-performance JavaScript engine because JavaScript execution takes a non-trivial portion of the loading time for many web sites. The current wisdom of speeding up JavaScript engine is simply turning on its just-in-time compilation (JITC), which compiles JavaScript code to machine code on the fly and executes it instead of interpretation. Unfortunately, we found that JITC actually increases the loading time tangibly for some JavaScript-heavy web pages compared to interpretation, while it can still reduce the running time for JavaScript benchmarks. We observed that the web page JavaScript behaves differently from the benchmark JavaScript in the sense that hot spots rarely exist. This would lower the reuse ratio of the compiled machine code, making the compilation overhead higher than its benefit. This is especially true for a JavaScript engine which compiles all executed functions at their first invocation, as the SFX engine in the WebKit. In order to overcome this problem, we introduce selective compilation to the SFX engine so as to compile only hot functions detected during interpretation. This reduces the slowdown of the SFX for web page JavaScript, while accelerating JavaScript benchmarks. However, selective compilation for web page JavaScript shows a different behavior from other environment, and we discuss it.
引用
收藏
页码:5 / 13
页数:9
相关论文
共 50 条
  • [1] The effectiveness of client-side Java']JavaScript Testing
    Moon, Jonny
    Farnsworth, Brian
    Smith, Riley
    [J]. 2020 IEEE/ACM 15TH INTERNATIONAL CONFERENCE ON AUTOMATION OF SOFTWARE TEST, AST, 2020, : 101 - 102
  • [2] The Security Challenges of Client-Side Just-in-Time Engines
    Rohlf, Chris
    Ivnitskiy, Yan
    [J]. IEEE SECURITY & PRIVACY, 2012, 10 (02) : 84 - 86
  • [3] REST to Java']JavaScript for Better Client-side Development
    Cho, Hyunghun
    Ryu, Sukyoung
    [J]. WWW'14 COMPANION: PROCEEDINGS OF THE 23RD INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, 2014, : 937 - 942
  • [4] Automatic fault localization for client-side Java']JavaScript
    Ocariza, Frolin S., Jr.
    Li, Guanpeng
    Pattabiraman, Karthik
    Mesbah, Ali
    [J]. SOFTWARE TESTING VERIFICATION & RELIABILITY, 2016, 26 (01): : 69 - 88
  • [5] A Study of Causes and Consequences of Client-Side Java']JavaScript Bugs
    Ocariza, Frolin S., Jr.
    Bajaj, Kartik
    Pattabiraman, Karthik
    Mesbah, Ali
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (02) : 128 - 144
  • [6] Just-in-time Java']Java™ compilation for the Itanium® processor
    Shpeisman, T
    Lueh, GY
    Adl-Tabatabai, AR
    [J]. 2002 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 2002, : 249 - 258
  • [7] Detecting Concurrency Errors in Client-side Java']JavaScript Web Applications
    Hong, Shin
    Park, Yongbae
    Kim, Moonzoo
    [J]. 2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, : 61 - 70
  • [8] Efficient and Precise Dynamic Slicing for Client-Side Java']JavaScript Programs
    Ye, Jiabin
    Zhang, Cheng
    Ma, Lei
    Yu, Haibo
    Zhao, Jianjun
    [J]. 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 449 - 459
  • [9] Efficient Java']JavaVM just-in-time compilation
    Krall, A
    [J]. 1998 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS, 1998, : 205 - 212
  • [10] Combining thread-level speculation and just-in-time compilation in Google's V8 Java']JavaScript engine
    Martinsen, Jan Kasper
    Grahn, Hakan
    Isberg, Anders
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2017, 29 (01):