Jan Kasper Martinsen's research while affiliated with Blekinge Institute of Technology and other places
What is this page?
This page lists the scientific contributions of an author, who either does not have a ResearchGate profile, or has not yet added these contributions to their profile.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
Publications (14)
Thread-level speculation can be used to take advantage of multicore architectures for JavaScript in web applications. We extend previous studies with these main contributions; we implement thread-level speculation in the state-of-the art just-in-time-enabled JavaScript engine V8 and make the measurements in the Chromium web browser both from Google...
JavaScript is a sequential programming language that has a large potential for parallel execution in Web applications. Thread-level speculation can take advantage of this, but it has a large memory overhead. In this article, we evaluate the effects of adjusting various parameters for thread-level speculation. Our results clearly show that thread-le...
Thread-Level Speculation has been used to take advantage of multicore processors in virtual execution environments for the sequential JavaScript scripting language. While the results are promising the memory overhead is high. Here we propose to reduce the memory usage by limiting the checkpoint depth based on an in-depth study of the memory and exe...
JavaScript is a sequential programming language, and Thread-Level Speculation has been proposed to dynamically extract parallelism in order to take advantage of parallel hardware. In previous work, we have showed significant speed-ups with a simple on/off speculation heuristic. In this paper, we propose and evaluate three heuristics for dynamically...
Thread-Level Speculation can be used to take advantage of multicore architectures for web applications. We have implemented Thread-Level Speculation in the state-of-the-art JavaScript engine V8 instead of using an interpreted JavaScript engine. We evaluate the implementation with the Chromium web browser on 15 popular web applications for 2, 4, and...
We present the first implementation of Thread-Level Spec-ulation in combination with Just-in-time compilation. The implementation is done in Google's V8, a well-known JavaScript engine, and evaluated on 15 popular web application execut-ing on 2, 4, and 8 core computers. Our results show an aver-age speedup of 2.9 on 4 cores, without any JavaScript...
JavaScript lets developers provide client-side interactivity in Web applications, but because it is sequential, it can't take advantage of multicore processors. Thread-level speculation (TLS) addresses this issue by enabling the speculation of JavaScript function calls and thus exploits the parallel performance potential multicore processors provid...
JavaScript has gone from being a mechanism for providing dynamic web pages to an important component of many web applications. Currently one of the most popular type of web applications is so-called social networks, e.g., Facebook, Twitter, and MySpace. However, the workload and execution behavior of JavaScript in this context have not been fully e...
Web Applications have become increasingly popular as they allow developers to use an uniform platform for user interactions. The dynamic programming language JavaScript used in most Web Applications has performance penalties, that have been addressed by traditional optimization techniques. We have found that while the performance gain of such techn...
JavaScript is a dynamically typed, object-based scripting language with runtime evaluation. It has emerged as an important
language for client-side computation of web applications. Previous studies indicate some differences in execution behavior
between established benchmarks and real-world web applications.
Our study extends previous studies by s...
Thread Level Speculation (TLS) has been suggested as a mean to automatically
(or semi-automatically) extract parallelism from sequential programs. While
there have been multiple attempts both in hardware and software to implement
real time TLS, to the best of our knowledge all attempts have so far been on a
byte code level or with statically ty...
In this study, we argue that the execution behavior of the current JavaScript bench-marks differs from the behavior of real-world Web Applications. We have compared the first 100 Web Applications in the Alexa top-sites list and 5 Facebook use cases, against three established JavaScript benchmark suites, i.e., Dromaeo, SunSpider, and V8. Our measure...
Previous studies have shown that there are large differences between the workload of established JavaScript benchmarks and popular Web Applications. It has also been shown that popular optimization techniques, such as just-in-time compi-lation, many times degrade the performance of Web Appli-cations. Further, since JavaScript is a sequential langua...
Thread Level Speculation at function level has been suggested as a method to automatically (or semi-automatically) extract parallelism from sequential programs. While there have been multiple implementations in both hardware and software, little work has been done in the context of dynamic programming languages such as JavaScript. In this paper we...
Citations
... It was shown that simple optimizations, even changing one line of code, can increase performance due to the JIT optimizations in the runtime ( [12], [13], [7], [18]). Thread-level speculation could also be benecial to the performance [11] but it is not implemented in common JS engines. ...
... In the same paper we also show that nested Thread-Level Speculation is necessary in order to improve the execution time over the sequential execution. In [20] we suggested three heuristics which allowed us to re-speculate on previously failed speculations. The conclusion was that while we found that our combined heuristics gave us some gain by allowing respeculation, and reduced the relationship between speculations and rollbacks, the overall problem with TLS in JavaScript for web applications is not the number of rollbacks, as rollbacks are very rare. ...
... However, this also implies that we save many states, which most likely never will be used (i.e., for Imdb we make over 5000 speculations with 150 rollbacks). To reduce the memory usage, we limit parameters such as the number of threads, the amount of memory, and the depth in nested speculation [24]. Our results show that it is possible to reduce the memory overhead and improve the execution time by adjusting the limits to these parameters. ...
... A previous study of Facebook reveals that a large number of anonymous function calls are made [35]. However, the same study reveals that these functions do not account for a large fraction of the total execution time. ...
... At the beginning of the smartphone was introduced, it can be used to access websites where users no longer need computer equipment as the main tool to access the website, the paradigm shift of website design has to change. Website service providers no longer compete with interesting features and effects in their website pages, but now they have to start thinking not only in the website design but how the look of website services should be opened quickly and lightly on smartphone devices [2]. Smartphones now rule the world and everyone has it. ...
... However, JavaScript is an interpreted language (which is slower than compiled languages) and due to its sequential nature it cannot take advantage of parallel multicore processors. Thus, optimizing JavaScript execution for Web applications is vital [Ratanaworabhan et al. 2010;Richards et al. 2010;Martinsen and Grahn 2011]. Martinsen et al. [2013] experimented by adding TLS functionality to JavaScript applications in order to take advantage of existing multicore processors. ...
... For instance, Ratanaworabhan et al. [47] used their JSMeter tool to analyze the dynamic behaviour of JavaScript in web applications. Similar work was conducted by Richards et al. [48] and Martinsen et al. [49]. A study of parallelism in JavaScript code was also undertaken by Fortuna et al. [50]. ...
... Recent attempts have used TLS with JavaScript -for example, in the Rhino JavaScript engine. 7 Here, we present an implementation of TLS in the Squirrelfish JavaScript engine used in the WebKit browser environment (www.webkit. org). ...
... In [21] and [9] we have done an early implementation of the TLS technique in the Rhino [22] Benchmarks Conflict with global variables Nonconflict with global variablesFigure 3. Number of functions with data dependence violations with global variables. ...