The V8 JavaScript Engine
|
|
|
- Matthew Mason
- 10 years ago
- Views:
Transcription
1 The V8 JavaScript Engine Design, Implementation, Testing and Benchmarking Mads Ager, Software Engineer
2 Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking
3 What is JavaScript? The main programming language of the web Dynamically typed scripting language C-like syntax
4 JavaScript types Basic types Undefined (undefined) Null (null) Boolean (true, false) String ("a", 'a',...) Number (1, 1.23,...) Object Everything else
5 JavaScript objects An object is a collection of properties A property has a name and a value Properties can be added and removed on the fly var o = {}; // Empty object.o.x = 42; // Adding property.o.x; // Accessing property (result: 42).o.y; // Accessing non-existing property // (result: undefined).delete o.x; // Removing property. o.x; // Accessing non-existing property.
6 JavaScript objects No classes in JavaScript All JavaScript objects are constructed from functions function Point(x, y) { this.x = x; this.y = y; } var p = new Point(1, 2); var q = new Point(2, 3); var o = {}; // Basically shorthand for "new Object()" var a = []; // Basically shorthand for "new Array()"
7 JavaScript objects All objects have a prototype property which can be either another object or null When accessing a property on an object the entire prototype chain is searched function C(x) { this.x = x; } C.prototype.f = function() { return this.x; } var o = new C(42); o.f(); // Result: 42 var p = new C(1); p.f(); // Result: 1
8 JavaScript objects Properties that should be available on all objects can be added to Object.prototype Properties that should be available on all function objects can be added to Function.prototype
9 JavaScript objects Prototype chains can be used to model inheritance Function.prototype.inherit = function(super) { var tmpctr = function() {}; tmpctr.prototype = super.prototype; this.prototype = new tmpctr(); this.super_ = super; } function X(x) { this.x = x; } X.prototype.get_x = function() { return this.x; }; function Y(x, y) { Y.super_.call(this, x); this.y = y; } Y.inherit(X); Y.prototype.get_y = function() { return this.y; }; var y = new Y(1, 2); y.get_x(); y.get_y();
10 JavaScript types (continued) No types specified in the source code Duck typing: "If it looks like a duck and quacks like a duck, it is a duck to me" All that matters is the properties, not the type
11 JavaScript types (continued) Type conversion happen at runtime to make operations make sense Type conversion can even be controlled by the programmer var x = 1 + 2; x = 1 + "2"; x = 1 + {}; var o = {}; o.tostring = function() { return "point"; } x = 1 + o;
12 JavaScript in browsers Document Object Model (DOM) objects exposed as javascript objects Event model: onload, onclick,... <html><body> <script> function changecolor(color) { document.getelementbyid('p').style.color = color; } </script> <p id="p"> Changing the color of some text. </p> <button type="button" onclick="changecolor('blue')">blue</button> <button type="button" onclick="changecolor('red')">red</button> </body></html>
13 Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking
14 What is V8? JavaScript engine built from scratch in Aarhus, Denmark Goal was to raise the performance bar for JavaScript Fully open source to allow other browser vendors to use the ideas from V8
15
16 Design goals Make real object-oriented programs run fast Fast property access Fast function calls Fast and scalable memory management
17 The challenge JavaScript is very dynamic Properties are added and removed on the fly Prototype chains can be altered on the fly
18 Design decisions Introduce a notion of type called 'hidden classes' or 'maps' behind the scenes Generate native code Use a technique called inline caching for property access and function calls Use precise generational garbage collection
19 V8 memory model 32-bit tagged pointers Objects are 4-byte aligned, so two bits available for tagging Small 31-bit signed integers are immediate values distinguished from pointers by tags Base JavaScript objects consists of three words
20 Hidden classes Wanted to take advantage of optimization techniques from statically typed object oriented languages Introduced the concept of hidden classes to get there Hidden classes group objects that have the same structure
21 Hidden Classes by Example JavaScript objects constructed in the same way should get the same hidden class function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
22 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
23 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
24 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
25 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
26 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
27 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
28 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
29 Hidden Classes by Example function Point(x, y) { this.x = x; this.y = y; } var p1 = new Point(0,1); var p2 = new Point(2,3);
30 How Dynamic is JavaScript? In 90% of the cases, only objects having the same map are seen at an access site Hidden classes provides enough structure to use optimization techniques from more static objectoriented language We do not know the hidden class of objects at compile time We use runtime code generation and a technique called inline caching
31 Inline Caching... load 'x'... load 'y'...
32 Inline Caching... load 'x'... load 'y'...
33 Inline Caching... load 'x'... load 'y'...
34 Inline Caching... load 'x'... load 'y'...
35 Monomorphic Load Inline Cache 0xf7c0d32d (size = 37): 0 mov eax,[esp+0x4] 4 test al,0x1 6 jz cmp [eax+0xff],0xf78fab81 19 jnz mov ebx,[eax+0x3] 28 mov eax,[ebx+0x7] 31 ret 32 jmp LoadIC_Miss
36 Monomorphic Load Inline Cache 0xf7c0d32d (size = 37): 0 mov eax,[esp+0x4] ; receiver load 4 test al,0x1 ; object check 6 jz cmp [eax+0xff],0xf78fab81 19 jnz mov ebx,[eax+0x3] 28 mov eax,[ebx+0x7] 31 ret 32 jmp LoadIC_Miss
37 Monomorphic Load Inline Cache 0xf7c0d32d (size = 37): 0 mov eax,[esp+0x4] ; receiver load 4 test al,0x1 ; object check 6 jz cmp [eax+0xff],0xf78fab81 ; class check 19 jnz mov ebx,[eax+0x3] 28 mov eax,[ebx+0x7] 31 ret 32 jmp LoadIC_Miss
38 Monomorphic Load Inline Cache 0xf7c0d32d (size = 37): 0 mov eax,[esp+0x4] ; receiver load 4 test al,0x1 ; object check 6 jz cmp [eax+0xff],0xf78fab81 ; class check 19 jnz mov ebx,[eax+0x3] ; load properties 28 mov eax,[ebx+0x7] ; load property 31 ret 32 jmp LoadIC_Miss
39 Monomorphic Load Inline Cache 0xf7c0d32d (size = 37): 0 mov eax,[esp+0x4] ; receiver load 4 test al,0x1 ; object check 6 jz cmp [eax+0xff],0xf78fab81 ; class check 19 jnz mov ebx,[eax+0x3] ; load properties 28 mov eax,[ebx+0x7] ; load property 31 ret 32 jmp LoadIC_Miss ; fallback to ; generic lookup
40 Inline Cache States Three inline cache states Uninitialized Monomorphic Megamorphic In the megamorphic state a cache of generated stubs is used Inline caches are cleared on full garbage collections Allows us to get rid of unused code stubs Gives all inline caches a new chance to hit the monomorphic case
41 Memory Management JavaScript is garbage collected Users don't have to worry about deallocating memory, the virtual machine will get rid of unused memory
42 Memory Management Basics Memory is allocated from a piece of memory called the heap which is controlled by the virtual machine When there is too little memory left to fulfill an allocation request a garbage collection is triggered Basic garbage collection Find all objects reachable from a root set (statics, pointers on the stack) Allow the rest of memory to be reused
43 Mark-Sweep Two phases Mark Starting from the root set perform graph traversal marking every object that is reachable Sweep Sweep through the entire heap from beginning to end For each object encountered Remove mark if marked and leave alone If not marked make space available for allocation (for instance by adding to a free list)
44 Copying Two separate spaces of the same size Always allocate from one space by just moving a pointer To collect garbage everything that is reachable is copied to the other space and allocation continues there Pros: Fast. Only live data is touched. Cons: Wastes space.
45 Efficient Memory Management Precise generational garbage collection Two generations Young generation is one small, contiguous space that is collected often Old generation is divided into a number of spaces that are only occasionally collected Code space (executable) Map space (hidden classes) Large object space (>8K) Old data space (no pointers) Old pointer space Objects are promoted from young to old generation if they survive
46 Types of Garbage Collection Scavenge Copying collection of only the young generation Pause times ~2ms Full non-compacting collection Mark-Sweep collection of both generations Free memory gets added to free lists Might cause fragmentation Pause times ~50ms Full compacting collection Mark-Sweep-Compact collection of both generations Pause times ~100ms
47 Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking
48 Testing V8 is shipped in Google Chrome every week We need V8 to be stable We need to push performance and be aggressive Therefore, we need a lot of testing
49 Testing For each commit to the V8 repository V8 tests (>1200 tests) Mozilla JS tests (>1900 tests) Sputnik (>5000 tests) ES5 conformance tests (>1200 tests) Many test configurations Linux x { ia32, x64, arm simulator } x { release, debug } Windows x { ia32, x64 } x { release, debug } Mac x ia32 x { release, debug }
50 Testing For each V8 commit WebKit layout tests run in Chromium test shell Push new version to Chromium twice a week After each push a lot of additional testing goes on on the Chromium buildbots
51 Testing Testing is crucial to making progress Having good test coverage allows us to make aggressive changes with less fear of breaking stuff When fixing a bug you add a new test When implementing a new feature you add a new test
52 Benchmarking We want to push JavaScript performance Need to track how we are doing We have built an infrastructure that runs a lot of benchmarks on every commit to the V8 repository Easy to keep track of progress and easy to spot regressions
53 Performance tracking
54 Performance tracking
55 Performance Goal was to push performance Performance is increased on every release of Google Chrome
56 Questions?
Fast JavaScript in V8. The V8 JavaScript Engine. ...well almost all boats. Never use with. Never use with part 2.
Fast JavaScript in V8 Erik Corry Google The V8 JavaScript Engine A from-scratch reimplementation of the ECMAScript 3 language An Open Source project from Google, primarily developed here in Århus A real
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Garbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
Dart a modern web language
Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The
Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc
Language Based Virtual Machines... or why speed matters by Lars Bak, Google Inc Agenda Motivation for virtual machines HotSpot V8 Dart What I ve learned Background 25+ years optimizing implementations
Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation
Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need
1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
JavaScript as a compilation target Making it fast
JavaScript as a compilation target Making it fast Florian Loitsch, Google Who am I? Florian Loitsch, software engineer at Google Projects Scheme2Js - Scheme-to-JavaScript compiler Js2scheme - JavaScript-to-Scheme
No no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()
CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic
風 水. Heap Feng Shui in JavaScript. Alexander Sotirov. [email protected]
風 水 Heap Feng Shui in JavaScript Alexander Sotirov [email protected] Black Hat Europe 2007 Introduction What is Heap Feng Shui? the ancient art of arranging heap blocks in order to redirect the program
Hotpatching and the Rise of Third-Party Patches
Hotpatching and the Rise of Third-Party Patches Alexander Sotirov [email protected] BlackHat USA 2006 Overview In the next one hour, we will cover: Third-party security patches _ recent developments
Java Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Java's garbage-collected heap
Sponsored by: This story appeared on JavaWorld at http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html Java's garbage-collected heap An introduction to the garbage-collected heap of the Java
USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER
USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER Lars Bergstrom Mozilla Research Mike Blumenkrantz Samsung R&D America Why a new web engine? Support new types of applications and new devices All modern
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
JavaScript. JavaScript: fundamentals, concepts, object model. Document Object Model. The Web Page. The window object (1/2) The document object
JavaScript: fundamentals, concepts, object model Prof. Ing. Andrea Omicini II Facoltà di Ingegneria, Cesena Alma Mater Studiorum, Università di Bologna [email protected] JavaScript A scripting language:
An Object Storage Model for the Truffle Language Implementation Framework
An Object Storage Model for the Truffle Language Implementation Framework Andreas Wöß Christian Wirth Daniele Bonetta Chris Seaton Christian Humer Hanspeter Mössenböck Institute for System Software, Johannes
Using Safari to Deliver and Debug a Responsive Web Design
Media #WWDC15 Using Safari to Deliver and Debug a Responsive Web Design Session 505 Jono Wells Safari and WebKit Engineer 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE
USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION
CSE 403. Performance Profiling Marty Stepp
CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize
Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013
NoSQL web apps w/ MongoDB, Node.js, AngularJS Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013 About us Passionate (web) dev. since fallen in love with Sinclair ZX Spectrum Academic background in natural
Performance Improvement In Java Application
Performance Improvement In Java Application Megha Fulfagar Accenture Delivery Center for Technology in India Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Agenda Performance
Bypassing Memory Protections: The Future of Exploitation
Bypassing Memory Protections: The Future of Exploitation Alexander Sotirov [email protected] About me Exploit development since 1999 Research into reliable exploitation techniques: Heap Feng Shui in JavaScript
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
Performance Optimization For Operational Risk Management Application On Azure Platform
Performance Optimization For Operational Risk Management Application On Azure Platform Ashutosh Sabde, TCS www.cmgindia.org 1 Contents Introduction Functional Requirements Non Functional Requirements Business
Installing an open source version of MateCat
Installing an open source version of MateCat This guide is meant for users who want to install and administer the open source version on their own machines. Overview 1 Hardware requirements 2 Getting started
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code
TitanMist: Your First Step to Reversing Nirvana TitanMist. mist.reversinglabs.com
TitanMist: Your First Step to Reversing Nirvana TitanMist mist.reversinglabs.com Contents Introduction to TitanEngine.. 3 Introduction to TitanMist 4 Creating an unpacker for TitanMist.. 5 References and
Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)
Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs) 1. Foreword Magento is a PHP/Zend application which intensively uses the CPU. Since version 1.1.6, each new version includes some
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Apple Applications > Safari 2008-10-15
Safari User Guide for Web Developers Apple Applications > Safari 2008-10-15 Apple Inc. 2008 Apple Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
TypeScript. Language Specification. Version 1.4
TypeScript Language Specification Version 1.4 October, 2014 Microsoft is making this Specification available under the Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") as of October
Angelika Langer www.angelikalanger.com. The Art of Garbage Collection Tuning
Angelika Langer www.angelikalanger.com The Art of Garbage Collection Tuning objective discuss garbage collection algorithms in Sun/Oracle's JVM give brief overview of GC tuning strategies GC tuning (2)
Lecture 9 Chrome Extensions
Lecture 9 Chrome Extensions 1 / 22 Agenda 1. Chrome Extensions 1. Manifest files 2. Content Scripts 3. Background Pages 4. Page Actions 5. Browser Actions 2 / 22 Chrome Extensions 3 / 22 What are browser
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Extreme Performance with Java
Extreme Performance with Java QCon NYC - June 2012 Charlie Hunt Architect, Performance Engineering Salesforce.com sfdc_ppt_corp_template_01_01_2012.ppt In a Nutshell What you need to know about a modern
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
From Faust to Web Audio: Compiling Faust to JavaScript using Emscripten
From Faust to Web Audio: Compiling Faust to JavaScript using Emscripten Myles Borins Center For Computer Research in Music and Acoustics Stanford University Stanford, California United States, [email protected]
Understanding Java Garbage Collection
TECHNOLOGY WHITE PAPER Understanding Java Garbage Collection And What You Can Do About It Table of Contents Executive Summary... 3 Introduction.... 4 Why Care About the Java Garbage Collector?.... 5 Classifying
Using the VMRC Plug-In: Startup, Invoking Methods, and Shutdown on page 4
Technical Note Using the VMRC API vcloud Director 1.5 With VMware vcloud Director, you can give users the ability to access virtual machine console functions from your web-based user interface. vcloud
Web Programming Step by Step
Web Programming Step by Step Lecture 13 Introduction to JavaScript Reading: 7.1-7.4 Except where otherwise noted, the contents of this presentation are Copyright 2009 Marty Stepp and Jessica Miller. Client-side
Automated Virtual Cloud Management: The need of future
Automated Virtual Cloud Management: The need of future Prof. (Ms) Manisha Shinde-Pawar Faculty of Management (Information Technology), Bharati Vidyapeeth Univerisity, Pune, IMRDA, SANGLI Abstract: With
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
Evolution of the Major Programming Languages
142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence
Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich
Departamento de Investigación LaST: Language Study Tool Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Noviembre 2005 Para citar este documento: Lindner, Edgard; Enrique Molinari,
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine Maxime Chevalier-Boisvert Erick Lavoie Marc Feeley Bruno Dufour {chevalma, lavoeric, feeley, dufour}@iro.umontreal.ca DIRO - Université de
Continuous Integration
Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener [email protected] Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My
HTML5 / NATIVE / HYBRID
HTML5 / NATIVE / HYBRID Ryan Paul Developer Evangelist @ Xamarin NATIVE VERSUS HTML5? REFRAMING THE DEBATE It s not a battle to the death. It s a choice: what solution will work best for your application?
Website Performance: Kyle Simpson
Website Performance: Kyle Simpson (Video: 0_Introduction.mp4): Introduction 00:00:0000:07:50: An introduction and a discussion about how developers need to change their mindset to think about web performance
Here is a quick diagram of the ULV SSO/Sync Application. Number 3 is what we deal with in this document.
University of La Verne Single-SignOn Project How this Single-SignOn thing is built, the requirements, and all the gotchas. Kenny Katzgrau, August 25, 2008 Contents: Pre-requisites Overview of ULV Project
Art of Code Front-end Web Development Training Program
Art of Code Front-end Web Development Training Program Pre-work (5 weeks) Codecademy HTML5/CSS3 and JavaScript tracks HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours):
CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
Enterprise Web Developer : Using the Emprise Javascript Charting Widgets.
Version 4.0.682.2 Background Enterprise Web Developer Using the Emprise Javascript Charting Widgets As of build 4.0.682, Enterprise Web Developer (EWD) includes advanced functionality that allows you to
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Evolution of Java Zoran Budimlić (Rice University) The Beginnings Sun Microsystems 1990 - Create a language for delivering programs on small electronic
Lecture 1: Data Storage & Index
Lecture 1: Data Storage & Index R&G Chapter 8-11 Concurrency control Query Execution and Optimization Relational Operators File & Access Methods Buffer Management Disk Space Management Recovery Manager
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
COS 318: Operating Systems. File Layout and Directories. Topics. File System Components. Steps to Open A File
Topics COS 318: Operating Systems File Layout and Directories File system structure Disk allocation and i-nodes Directory and link implementations Physical layout for performance 2 File System Components
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
Blue Coat Security First Steps Solution for Deploying an Explicit Proxy
Blue Coat Security First Steps Solution for Deploying an Explicit Proxy SGOS 6.5 Third Party Copyright Notices 2014 Blue Coat Systems, Inc. All rights reserved. BLUE COAT, PROXYSG, PACKETSHAPER, CACHEFLOW,
Performance Optimization and Debug Tools for mobile games with PlayCanvas
Performance Optimization and Debug Tools for mobile games with PlayCanvas Jonathan Kirkham, Senior Software Engineer, ARM Will Eastcott, CEO, PlayCanvas 1 Introduction Jonathan Kirkham, ARM Worked with
Validating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
Meeting the challenges of modern website performance Developments in monitoring strategies
Meeting the challenges of modern website performance Developments in monitoring strategies Is your website monitoring realistic enough to meet today s challenges? Is your web testing strategy holistic
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
Comparing performance between plain JavaScript and popular JavaScript frameworks
Degree project Comparing performance between plain JavaScript and popular JavaScript frameworks Author: Zlatko Ladan Supervisor: Johan Hagelbäck Date: 2015-02-02 Course Code: 2DV00E, 15 credits Level:
Client-side Development using HTML, Javascript and CSS
Lab 1 Client-side Development using HTML, Javascript and CSS Authors: Sahand Sdjadee Alexander Kazen Gustav Bylund Per Jonsson Tobias Jansson Spring 2015 TDDD97 Web Programming http://www.ida.liu.se/~tddd97/
Memory Management in the Java HotSpot Virtual Machine
Memory Management in the Java HotSpot Virtual Machine Sun Microsystems April 2006 2 Table of Contents Table of Contents 1 Introduction.....................................................................
GJC Web Design Virtuemart 2.0 Radius Shipping Plugin
GJC Web Design Virtuemart 2.0 Radius Shipping Plugin This is the VirtueMart 2.0 Radius Shipping Plugin that fully integrates and shows real time shipping quotes based on the distance from the vendor's
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
AjaxScope: Remotely Monitoring Client-side Web-App Behavior
AjaxScope: Remotely Monitoring Client-side Web-App Behavior Emre Kıcıman [email protected] Ben Livshits [email protected] Internet Services Research Center Microsoft Research Runtime Analysis &
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
INFORMATION BROCHURE Certificate Course in Web Design Using PHP/MySQL
INFORMATION BROCHURE OF Certificate Course in Web Design Using PHP/MySQL National Institute of Electronics & Information Technology (An Autonomous Scientific Society of Department of Information Technology,
Apache 2.0 Installation Guide
Apache 2.0 Installation Guide Ryan Spangler [email protected] http://ceut.uww.edu May 2002 Department of Business Education/ Computer and Network Administration Copyright Ryan Spangler 2002 Table of
Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>
Unix Security Technologies Pete Markowsky What is this about? The goal of this CPU/SWS are: Introduce you to classic vulnerabilities Get you to understand security advisories Make
Compilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: [email protected] Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: [email protected] Alfonso Ortega: [email protected] Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
JavaScript Basics & HTML DOM. Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com
JavaScript Basics & HTML DOM Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com 2 Disclaimer & Acknowledgments Even though Sang Shin is a full-time employee
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
POOSL IDE User Manual
Embedded Systems Innovation by TNO POOSL IDE User Manual Tool version 3.0.0 25-8-2014 1 POOSL IDE User Manual 1 Installation... 5 1.1 Minimal system requirements... 5 1.2 Installing Eclipse... 5 1.3 Installing
Simply type the id# in the search mechanism of ACS Skills Online to access the learning assets outlined below.
Programming Practices Learning assets Simply type the id# in the search mechanism of ACS Skills Online to access the learning assets outlined below. Titles Debugging: Attach the Visual Studio Debugger
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic
X86-64 Architecture Guide
X86-64 Architecture Guide For the code-generation project, we shall expose you to a simplified version of the x86-64 platform. Example Consider the following Decaf program: class Program { int foo(int
