JRuby Power on the JVM. Ola Bini JRuby Core Developer ThoughtWorks
|
|
|
- Brianne French
- 10 years ago
- Views:
Transcription
1 JRuby Power on the JVM Ola Bini JRuby Core Developer ThoughtWorks
2 Vanity slide Ola Bini From Stockholm, Sweden Programming language nerd (Lisp, Ruby, Java, Smalltalk, Io, Erlang, ML, C/C++, etc) JRuby Core Developer (2 years and running) Author of Practical JRuby on Rails (APress)
3 Agenda What is JRuby How to get started The implementation Cool things Possibly some Rails Q&A
4 What is JRuby Implementation of the Ruby language Java 1.5+ (1.4 for JRuby 1.0) Retroweaver can be used for 1.4 compatibility Open source It s just Ruby Compatible with Ruby JRuby and 1.1RC3 current releases 1.0-branch rapidly falling behind
5 Community 8 Core developers contributors Outstanding contributions Like Marcin s Oniguruma port Joni is probably the fastest Regexp engine for Java right now
6 Ruby Issues - Threading Ruby 1.8: Green threading No scaling across processors/cores C libraries won t/can t yield One-size-fits-all scheduler Ruby 1.9: Native, non-parallel execution JRuby: Ruby threads are Java threads World class scheduler with tunable algorithms
7 Ruby Issues - Unicode Ruby 1.8: Partial Unicode Internet connection applications MUST have solid Unicode Ruby 1.8 provides very partial support App devs roll their own: Rails Multi-byte Ruby 1.9: Full encoding support Drastic changes to interface and implementation Performance issues Each string can have its own encoding JRuby: Java Unicode
8 Ruby Issues - Performance Ruby 1.8: Slower than most languages 1.8 is usually called fast enough...but routinely finishes last...and no plans to improve in 1.8 Ruby 1.9: Improvement, but not scalable New engine about 1.5x for general appliciations Only implicit AOT compilation No JIT, no GC or threading changes JRuby: Compiler provides better performance
9 Ruby Issues - Memory Ruby 1.8: Memory management Simple design Good for many apps, but not scalable Stop-the-world GC Ruby 1.9: No change Improved performance => more garbage GC problems could multiply JRuby: World class Java GC s
10 Ruby Issues - C Ruby 1.8 & 1.9: C language extensions C is difficult to write well Badly-behaved extensions can cause large problems Threading and GC issues relating to extensions Portable, but often with recompilation No security restrictions in the system JRuby Java extensions GC and threading no problem
11 Ruby Issues - Politics Politics You want me to switch to what?... and it needs servers/software/training? Potentially better with time (e.g. 1.9) Legacy Lots of Java apps in the world Extensive amount of Java frameworks JRuby solves both of these by running on top of Java Credibility by association
12 C libraries JRuby can t support native extensions Designed around single-threaded execution (i.e. one app, one request per process at a time Stability, security problems Too permissive Ruby extension API But who cares? If you want to do it, there s a Java library If no, we support natives access through JNA And even porting is not that hard
13 Getting started Java installation Download JRuby binary distro Includes JRuby, Ruby stdlib, RubyGems and rake Unpack Multiple copies on the system is fine Add <jruby-dir>/bin to PATH Install gems (gem install or jruby -S gem install)
14 Calling Ruby from Java // One-time load Ruby runtime ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getenginebyname("jruby"); // Evaluate JRuby code from string. try { engine.eval("puts('hello')"); } catch (ScriptException exception) { exception.printstacktrace(); }
15 DEMO Java Integration
16 Implementation: Lexing, parsing Hand written lexer Originally ported from MRI Many changes since then LALR parser Port of MRI s YACC/Bison-based parser Abstract Syntax Tree quite similar to MRI We ve made a few changes and additions
17 Implementation: Core classes Mostly 1:1 core classes map to Java types String is RubyString, Array is RubyArray, etc Annotation based method binding JRubyMethod { String[] name() default {}; int required() default 0; int optional() default 0; boolean rest() default false; String[] alias() default {}; boolean meta() default false; boolean module() default false; boolean frame() default false; boolean scope() default false; boolean rite() default false; Visibility visibility() default Visibility.PUBLIC; = "open", required = 1, frame = true)
18 Implementation: Interpreter Simple switch based AST walker Recurses for nested structures Most code start out interpreted Command line scripts compiled immediately Precompiled script (.class) instead of.rb Eval ed code is always interpreted (for now) Reasonably straight forward code
19 Implementation: Compilation Full Bytecode compilation 1.0 had partial JIT compiler (25%) AST walker emits code structure Bytecode emitter generates Java class + methods Real Java bytecode AOT mode: 1:1 mapping.rb file to.class file Not a real Java class, more a bunch of methods... but has a main for CLI execution JIT mode: 1:1 mapping method to in-memory class
20 DEMO Precompilation
21 Compiler problems AOT pain Code bodies as Java methods need method handles Generated as adaptor methods Ruby is very terse - the compiled output is much more verbose Mapping symbols safely (class, package, method names) JIT pain Method body must live on a class Class must be live in separate classloader to GC Class name must be unique within that classloader
22 Compiler optimizations Preallocated, cached Ruby literals Java opcodes for local flow-control where possible Explicit local return as cheap as implicit Explicit local next, break, etc simple jumps Java local variables when possible Methods and leaf closures leaf == no contained closures No eval(), binding(), etc calls present Monomorphic inline method cache Polymorphic for 1.1 (probably)
23 Core class implementations String as copy-on-write byte[] impl Array as copy-on-write Object[] impl Fast-read Hash implementation Java New IO (NIO) based IO implementation Example: implementing analogs for libc IO functions Two custom Regexp implementations New one works with byte[] directly
24 Threading JRuby supports only native OS threads Much heavier than Ruby's green threads But truly parallel, unlike Ruby 1.9 (GIL) Emulates unsafe green operations Thread#kill, Thread#raise inherently unsafe Thread#critical impossible to guarantee All emulated with checkpoints (pain...) Pooling of OS threads minimizes spinup cost
25 POSIX Normal Ruby native extensions not supported Maybe in future, but Ruby API exposes too much Native libraries accessible with JNA Not JNI...JNA = Java Native Access Programmatically load libs, call functions Similar to DL in Ruby Could easily be used for porting extensions JNA used for POSIX functions not in Java Filesystem support (symlinks, stat, chmod, chown,...)
26 Java Integration Java types are presented as Ruby types Construct instances, call methods, pass objects around camelcase or under_score_case both work Most Ruby-calling-Java code looks just like Ruby Integration with Java type hierarchy Implement Java interfaces longhand include SomeInterface shorthand SomeInterface.impl {... } closure conversion add_action_listener {... } Extend Java concrete and abstract Java types
27 Performance No, it's not all that important Until it is! JRuby 1.0 was about 2x slower than Ruby JRuby 1.1 Beta 1 was about 2x faster JRuby trunk is 5x faster, often faster than 1.9 As a result, we've stopped working on perf for now...but targeting Java performance next
28 DEMO Benchmarks
29 JRuby Internals JRuby::ast_for( 1+1 ) #-> Java AST JRuby::ast_for { 1+1 } #-> Java AST JRuby::compile( 1+1 ) #-> CompiledScript CompiledScript.inspect_bytecode JRuby::runtime JRuby::reference( str )
30 ... evil stuff a = foobar a.freeze JRuby::reference(a).setFrozen(false) class Foobar; end something = Object.new JRuby::reference(something).setMetaClass(Foobar) class Foobar; end JRuby::reference(Foobar).getMethods()
31 JRuby on Rails - end to end Create application Package into a WAR-file, using Warbler JRubyWorks Goldspike Deploy WAR file to any Java Web Container Jetty, Tomcat, GlassFish Oracle Application Server, JBoss, WebSphere WebLogic
32 JtestR Test Java code with Ruby Glues JRuby together with state of the art Ruby libraries Includes RSpec, Test::Unit, dust, Mocha, etc Ant and Maven 2 integration 0.2 to be released any time now (tm)
33 Rubiq Lisp layer on top of JRuby Transforms to JRuby AST... and lets JRuby execute it Macros Read macros (used to implement regexp syntax, for example) Pure lexical scoping Lambdas transparently transforms to blocks or Proc.new
34 ActiveHibernate # define a model (or you can use existing) class Project include Hibernate with_table_name "PROJECTS" #optional #column name is optional primary_key_accessor :id, :long, :PROJECT_ID hattr_accessor :name, :string hattr_accessor :complexity, :double end # connect ActiveHibernate.establish_connection(DB_CONFIG) # create project = Project.new(:name => "JRuby", :complexity => 10) project.save project_id = project.id # query all_projects = Project.find(:all) jruby_project = Project.find(project_id) # update jruby_project.complexity = 37 jruby_project.save
35 Ruvlets Expose Servlets as Ruby API Because we can! People keep asking for this...really! Expose highly tuned web-infrastructure to Ruby Similar in L&F to Camping How it works: Evaluates file from load path based on URL File returns an object with a 'service' method defined Object cached for all future requests
36 Bare bones Ruvlet class HelloWorld def service(context, request, response) response.content_type = "text/html" response.writer << <<-EOF <html> <head><title>hello World!</title></head> <body>hello World!</body> </html> EOF end end HelloWorld.new
37 YARV & Rubinius machine YARV 2.0 Compatibility Simple machine Simple compiler Might give interpreted performance improvement Rubinius Simple machine Quite outdated at the moment Why do it? Why not?
38 JSR292, JLR & DaVinci Dynamic invocation: non-java call sites Method handles Anonymous classes Faster reflection, escape analysis Interface injection Continuations Value objects (Lisp fixnums) Tuple types Tail calls
39 JRuby s future Get 1.1 out there Light weight objects JSR292 support Rubinius? More primitives in Ruby? Rework the Java Integration features Create a stable public API for extensions Better performance (as always) Support for Ruby 1.9 features
40
41 Resources jruby.org #jruby on freenode glassfish.dev.java.net openjdk.java.net/projects/mlvm jtestr.codehaus.org code.google.com/p/activehibernate headius.blogspot.com ola-bini.blogspot.com
42 Q&A
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution Share Alike 3.0 United
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
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.
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
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
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
Ruby on Rails in GlassFish [email protected] http://weblogs.java.net/blog/vivekp/ Sun Microsystems
Ruby on Rails in GlassFish [email protected] http://weblogs.java.net/blog/vivekp/ Sun Microsystems Ruby On Rails in GlassFish 1 Agenda Introduction to RoR What is JRuby? GlassFish overview RoR on GlassFish
The NetBeans TM Ruby IDE: You Thought Rails Development Was Fun Before
The NetBeans TM Ruby IDE: You Thought Rails Development Was Fun Before Tor Norbye and Brian Leonard Sr. Software Engineers Sun Microsystems TS-5249 Learn how to jump-start your Ruby and Rails development
The Other mod_rails: Easy Rails Deployment with JRuby. Nick Sieger Sun Microsystems, Inc
The Other mod_rails: Easy Rails Deployment with JRuby Nick Sieger Sun Microsystems, Inc CGI/FCGI Mongrel omg puppiez! not nirvana... Processes: 68 total, 3 running, 1 stuck, 64 sleeping... 309 threads
Apache Thrift and Ruby
Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and
Tool - 1: Health Center
Tool - 1: Health Center Joseph Amrith Raj http://facebook.com/webspherelibrary 2 Tool - 1: Health Center Table of Contents WebSphere Application Server Troubleshooting... Error! Bookmark not defined. About
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
Apache Jakarta Tomcat
Apache Jakarta Tomcat 20041058 Suh, Junho Road Map 1 Tomcat Overview What we need to make more dynamic web documents? Server that supports JSP, ASP, database etc We concentrates on Something that support
Put a Firewall in Your JVM Securing Java Applications!
Put a Firewall in Your JVM Securing Java Applications! Prateep Bandharangshi" Waratek Director of Client Security Solutions" @prateep" Hussein Badakhchani" Deutsche Bank Ag London Vice President" @husseinb"
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.
GlassFish v3 Building an ex tensible modular Java EE application server Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc. Agenda Java EE 6 and GlassFish V3 Modularity, Runtime Service Based Architecture
New Relic & JMeter - Perfect Performance Testing
TUTORIAL New Relic & JMeter - Perfect Performance Testing by David Sale Contents Introduction 3 Demo Application 4 Hooking Into New Relic 4 What Is JMeter? 6 Installation and Usage 6 Analysis In New Relic
<Insert Picture Here> What's New in NetBeans IDE 7.2
Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
Parrot in a Nutshell. Dan Sugalski [email protected]. Parrot in a nutshell 1
Parrot in a Nutshell Dan Sugalski [email protected] Parrot in a nutshell 1 What is Parrot The interpreter for perl 6 A multi-language virtual machine An April Fools joke gotten out of hand Parrot in a nutshell
ILOG JRules Performance Analysis and Capacity Planning
ILOG JRules Performance Analysis and Capacity Planning Version 1. Last Modified: 25-9-31 Introduction JRules customers and evaluators often ask fundamental questions such as: How fast is the rule engine?,
Installing Ruby on Windows XP
Table of Contents 1 Installation...2 1.1 Installing Ruby... 2 1.1.1 Downloading...2 1.1.2 Installing Ruby...2 1.1.3 Testing Ruby Installation...6 1.2 Installing Ruby DevKit... 7 1.3 Installing Ruby Gems...
Java Performance. Adrian Dozsa TM-JUG 18.09.2014
Java Performance Adrian Dozsa TM-JUG 18.09.2014 Agenda Requirements Performance Testing Micro-benchmarks Concurrency GC Tools Why is performance important? We hate slow web pages/apps We hate timeouts
Chapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework
JOURNAL OF APPLIED COMPUTER SCIENCE Vol. 21 No. 1 (2013), pp. 53-69 Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework Marcin Kwapisz 1 1 Technical University of Lodz Faculty
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
PHP on IBM i: What s New with Zend Server 5 for IBM i
PHP on IBM i: What s New with Zend Server 5 for IBM i Mike Pavlak Solutions Consultant [email protected] (815) 722 3454 Function Junction Audience Used PHP in Zend Core/Platform New to Zend PHP Looking to
Data Sheet VISUAL COBOL 2.2.1 WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials
Visual COBOL is the industry leading solution for COBOL application development and deployment on Windows, Unix and Linux systems. It combines best in class development tooling within Eclipse and Visual
EMC Documentum Content Management Interoperability Services
EMC Documentum Content Management Interoperability Services Version 6.7 Deployment Guide EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com EMC believes the information
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
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
Rakudo Perl 6 on the JVM. Jonathan Worthington
Rakudo Perl 6 on the JVM Jonathan Worthington About Rakudo Most complete and most actively developed Perl 6 implementation Compiler + built-ins 66 monthly releases to date 10-20 code contributors per release
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
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
WebSphere v5 Administration, Network Deployment Edition
WebSphere v5 Administration, Network Deployment Edition Loading Java Classes Web Age Solutions, Inc. 2003 6-32 Class Loader A class loader is a Java class that loads compiled Java byte code of other classes.
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
WebSphere Server Administration Course
WebSphere Server Administration Course Chapter 1. Java EE and WebSphere Overview Goals of Enterprise Applications What is Java? What is Java EE? The Java EE Specifications Role of Application Server What
IBM WebSphere Server Administration
IBM WebSphere Server Administration This course teaches the administration and deployment of web applications in the IBM WebSphere Application Server. Duration 24 hours Course Objectives Upon completion
Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID
1 Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 2 What s GlassFish v3? JavaEE 6 API for REST (JAX-RS) Better web framework support (Servlet 3.0) WebBeans,
HP NonStop JDBC Type 4 Driver Performance Tuning Guide for Version 1.0
HP NonStop JDBC Type 4 Driver November 22, 2004 Author: Ken Sell 1 Introduction Java applications and application environments continue to play an important role in software system development. Database
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected]
Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam [email protected] Agenda The rise of Big Data & Hadoop MySQL in the Big Data Lifecycle MySQL Solutions for Big Data Q&A
Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5
Course Page - Page 1 of 5 WebSphere Application Server 7.0 Administration on Windows BSP-1700 Length: 5 days Price: $ 2,895.00 Course Description This course teaches the basics of the administration and
PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:
PHP vs. Java *This document reflects my opinion about PHP and Java. I have written this without any references. Let me know if there is a technical error. --Hasari Tosun It isn't correct to compare Java
MAGENTO HOSTING Progressive Server Performance Improvements
MAGENTO HOSTING Progressive Server Performance Improvements Simple Helix, LLC 4092 Memorial Parkway Ste 202 Huntsville, AL 35802 [email protected] 1.866.963.0424 www.simplehelix.com 2 Table of Contents
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
Effective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
Building and Deploying Web Scale Social Networking Applications Using Ruby on Rails and Oracle. Kuassi Mensah Group Product Manager
Building and Deploying Web Scale Social Networking Applications Using Ruby on Rails and Oracle Kuassi Mensah Group Product Manager The following is intended to outline our general product direction. It
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Quantifind s story: Building custom interactive data analytics infrastructure
Quantifind s story: Building custom interactive data analytics infrastructure Ryan LeCompte @ryanlecompte Scala Days 2015 Background Software Engineer at Quantifind @ryanlecompte [email protected] http://github.com/ryanlecompte
GTask Developing asynchronous applications for multi-core efficiency
GTask Developing asynchronous applications for multi-core efficiency February 2009 SCALE 7x Los Angeles Christian Hergert What Is It? GTask is a mini framework to help you write asynchronous code. Dependencies
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
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
Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)
Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1
Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004
Developing Web Services with Eclipse and Open Source Claire Rogers Developer Resources and Partner Enablement, HP February, 2004 Introduction! Many companies investigating the use of web services! Cost
Weaving Stored Procedures into Java at Zalando
Weaving Stored Procedures into Java at Zalando Jan Mussler JUG DO April 2013 Outline Introduction Stored procedure wrapper Problems before the wrapper How it works How to use it More features including
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
VOC Documentation. Release 0.1. Russell Keith-Magee
VOC Documentation Release 0.1 Russell Keith-Magee February 07, 2016 Contents 1 About VOC 3 1.1 The VOC Developer and User community................................ 3 1.2 Frequently Asked Questions.......................................
Learning GlassFish for Tomcat Users
Learning GlassFish for Tomcat Users White Paper February 2009 Abstract There is a direct connection between the Web container technology used by developers and the performance and agility of applications.
Java EE Web Development Course Program
Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,
Glassfish, JAVA EE, Servlets, JSP, EJB
Glassfish, JAVA EE, Servlets, JSP, EJB Java platform A Java platform comprises the JVM together with supporting class libraries. Java 2 Standard Edition (J2SE) (1999) provides core libraries for data structures,
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR
VIRTUAL LABORATORY: MULTI-STYLE CODE EDITOR Andrey V.Lyamin, State University of IT, Mechanics and Optics St. Petersburg, Russia Oleg E.Vashenkov, State University of IT, Mechanics and Optics, St.Petersburg,
Developing modular Java applications
Developing modular Java applications Julien Dubois France Regional Director SpringSource Julien Dubois France Regional Director, SpringSource Book author :«Spring par la pratique» (Eyrolles, 2006) new
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
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
Mark Bennett. Search and the Virtual Machine
Mark Bennett Search and the Virtual Machine Agenda Intro / Business Drivers What to do with Search + Virtual What Makes Search Fast (or Slow!) Virtual Platforms Test Results Trends / Wrap Up / Q & A Business
Tuning Your GlassFish Performance Tips. Deep Singh Enterprise Java Performance Team Sun Microsystems, Inc.
Tuning Your GlassFish Performance Tips Deep Singh Enterprise Java Performance Team Sun Microsystems, Inc. 1 Presentation Goal Learn tips and techniques on how to improve performance of GlassFish Application
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
WEBLOGIC ADMINISTRATION
WEBLOGIC ADMINISTRATION Session 1: Introduction Oracle Weblogic Server Components Java SDK and Java Enterprise Edition Application Servers & Web Servers Documentation Session 2: Installation System Configuration
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.
Professional SlickEdif John Hurst IC..T...L i 1 8 О 7» \ WILEY \! 2 0 0 7 " > Wiley Publishing, Inc. Acknowledgments Introduction xiii xxv Part I: Getting Started with SiickEdit Chapter 1: Introducing
Toad for Oracle 8.6 SQL Tuning
Quick User Guide for Toad for Oracle 8.6 SQL Tuning SQL Tuning Version 6.1.1 SQL Tuning definitively solves SQL bottlenecks through a unique methodology that scans code, without executing programs, to
Programming Project 1: Lexical Analyzer (Scanner)
CS 331 Compilers Fall 2015 Programming Project 1: Lexical Analyzer (Scanner) Prof. Szajda Due Tuesday, September 15, 11:59:59 pm 1 Overview of the Programming Project Programming projects I IV will direct
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
CSC 551: Web Programming. Spring 2004
CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro
Programming Language Concepts for Software Developers
Programming Language Concepts for Software Developers Peter Sestoft IT University of Copenhagen, Denmark [email protected] Abstract This note describes and motivates our current plans for an undergraduate
Deploying and Monitoring Ruby on Rails A practical guide
Deploying and Monitoring Ruby on Rails A practical guide Mathias Meyer and Jonathan Weiss, 02.09.2008 Peritor GmbH Who are we? Jonathan Weiss Consultant for Peritor GmbH in Berlin Specialized in Rails,
Restraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
Semester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
An Oracle White Paper May 2010. Ready for Business: Oracle GlassFish Server
An Oracle White Paper May 2010 Ready for Business: Oracle GlassFish Server Introduction GlassFish Server Open Source Edition, with its compelling advantages, has quickly become the open source platform
Enterprise Application Development In Java with AJAX and ORM
Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering [email protected] http://paulgrenyer.blogspot.com
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine
Blackboard Learn TM, Release 9 Technology Architecture John Fontaine Overview Background Blackboard Learn Deployment Model and Architecture Setup and Installation Common Administrative Tasks Tuning Integrating
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
Top Weblogic Tasks You can Automate Now
Top Weblogic Tasks You can Automate Now Session ID#: 10506 Prepared by: Mrityunjay Kant Practice Manager, SOA & Integration Services AST Corporation @MrityunjayKant REMINDER Check in on the COLLABORATE
1 Introduction. 2 An Interpreter. 2.1 Handling Source Code
1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons
Ruby in the context of scientific computing
Ruby in the context of scientific computing 16 January 2014 1/24 Overview Introduction Characteristics and Features Closures Ruby and Scientific Computing SciRuby Bioruby Conclusion References 2/24 Introduction
Detecting (and even preventing) SQL Injection Using the Percona Toolkit and Noinject!
Detecting (and even preventing) SQL Injection Using the Percona Toolkit and Noinject! Justin Swanhart Percona Live, April 2013 INTRODUCTION 2 Introduction 3 Who am I? What do I do? Why am I here? The tools
Modern Software Development Tools on OpenVMS
Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics
