Wednesday Oct 09, 2013
Tuesday Aug 27, 2013
By Darryl Gove on Aug 27, 2013
I've got my schedule for Oracle Open World and JavaOne:
- Performance Tuning Where Java Meets the Hardware - CON3762
9/23/13 (Monday) 1:00 PM - Hilton - Continental Ballroom 5
- Developing Efficient Database Applications with C and C++ - CON9355
9/26/13 (Thursday) 12:30 PM - Marriott Marquis - Golden Gate C2
- Mixed-Language Development: Leveraging Native Code from Java - CON3408
9/26/13 (Thursday) 2:00 PM - Hilton - Continental Ballroom 6
Note that on Thursday I have about 30 minutes between my two talks, so expect me to rush out of the database talk in order to get to the Java talk.
Monday Jul 08, 2013
By Darryl Gove on Jul 08, 2013
I'll be up at both JavaOne and Oracle Open World presenting. I have a total of three presentations:
- Mixed-Language Development: Leveraging Native Code from Java
- Performance Tuning Where Java Meets the Hardware
- Developing Efficient Database Applications with C and C++
I'm excited by these opportunities - particularly working with Charlie Hunt diving into Java Performance.
Thursday Oct 18, 2012
Wednesday Aug 29, 2012
By Darryl Gove on Aug 29, 2012
Here's the abstract from my JavaOne talk:
There are some situations in which it is necessary to call native code (C/C++ compiled code) from Java applications. This session describes how to do this efficiently and how to performance-tune the resulting applications.
The objectives for the session are:
- Explain reasons for using native code in Java applications
- Describe pitfalls of calling native code from Java
- Discuss performance-tuning of Java apps that use native code
I'll cover how to call native code from Java, debugging native code, and then I'll dig into performance tuning the code. The talk is not going too deep on performance tuning - focusing on the JNI specific topics; I'll do a bit more about performance tuning in my OpenWorld talk later in the day.
Monday Aug 27, 2012
By Darryl Gove on Aug 27, 2012
On Monday 1 October I will be presenting at both JavaOne and Oracle Open World. The full conference schedule is available from here. The logistics for my sessions are as follows:
- JavaOne: 8:30am Monday 1 October. CON6714: "Mixed-Language Development: Leveraging Native Code from Java". San Francisco Hilton - Continental Ballroom 6
- Oracle OpenWorld: 10:45am Monday 1 October. CON6382: "Maximizing Your SPARC T4 Oracle Solaris Application Performance". Marriott Marquis - Golden Gate C3
Hope to see you there!
Friday Jan 16, 2009
By Darryl Gove on Jan 16, 2009
I've been working on an Analyzer experiment from a long running multithreaded application. Being MT I really needed to see the Timeline view to make sense of what was happening. However, when I switched to the Timeline I got a Java Out of Memory error (insufficient heap space).
Tracking this down, I used prstat to watch the Java application run and the memory footprint increase. I'd expected it to get to 4GB and die at that point, so I was rather surprised when the process was only consuming 1.1GB when the error occurred.
I looked at the commandline options for the Java process using pargs, and spotted the flag -Xmx1024m; which sets the max memory to be 1GB. Ok, found the culprit. You can use the -J
$ analyzer -J-Xmx4096m test.1.er
If you need more memory than that, you'll have to go to the 64-bit JVM, and allocate an appropriate amount of memory:
$ analyzer -J-d64 -J-Xmx8192m test.1.er
Friday Mar 21, 2008
By Darryl Gove on Mar 21, 2008
A while ago I started looking for ways to get my oldest coding. My first machine was a zx-81, with 1k of memory, and most of this was used by the screen, there was a big incentive to learn assembler. I'm not out to force him into assembler programming, but...
I evaluated a number of possibilities, one was the Kid's Programming Language (or Phrogram) which can do some impressive things in few lines of code. A sample 3D space 'game' takes about 30 lines most of which look like:
If IsKeyDown( Up ) Then Ship.TiltUP( moveAmount ) End If
I also looked at squeak, but it didn't grab me as being easy to use.
An interesting alternative to real coding is c-jump, which is a programming board game. I'm not quite convinced by the syntax, or the jumping around the board.
The first thing I tried with him was Java. Which was pretty successful, but I couldn't just leave him to get on with it. There's quite a bit of syntax to have to handle. So while it was a success, it relied on me finding the time to work with him.
We then tried scratch. This has been quite successful for the following reasons:
- It's all drag-and-drop, and the programming constructs are coloured/shaped so it's easy to put them together correctly.
- Its all graphical, and the interface is very intuitive. You can see the object that you're programming.
- It has an integrated graphics editor so he can draw his own sprites. Changing the look of a sprite is a step towards looking at the programming of the sprite and from there modifying the programming.
- The biggest thing has been that he can work on this autonomously, I just have to see the end results.
The downside of scratch is that it seems a bit limited in what it can do. He really wants to do 3D games - so perhaps Phrogram is the next stop.
Any other recommendations for kids programming?
Friday May 25, 2007
By Darryl Gove on May 25, 2007
- Multicore Application Programming available in Chinese!
- Article on RAW hazards
- OpenMP, macros, and #define
- JavaOne and Oracle Open World Presentations available
- SPARC processor documentation
- UKOUG Conference - Three presentations
- Presenting at UK Oracle User Group meeting
- Timezone troubles when dual booting
- My Oracle Open World and JavaOne schedule
The Developer's Edge
Solaris Application Programming
- Coding for multiple threads on a CMT system
- Compiling for the UltraSPARC IIICu ...
- Cool Tools for SPARC systems overview
- GCC for SPARC Systems compiler options
- Improving Code Layout ...
- Interpreting UltraSPARC T1/T2 performance counters
- Memory ordering - part 1
- Memory ordering - part 2
- Performance Analysis Using SPOT
- Selecting Training Workloads ...
- Selecting the Best Compiler Options
- Sun Memory Error Discovery Tool
- UltraSPARC-IIICu Performance Counters ...
- Using Inline Templates ...
- Using Profile Feedback
- Using SHADE to Trace Program Execution
- Using VIS Instructions ...
- Using redistributable libraries
- CPU2006 training workload quality
- CPU2006 working set size
- Coding for multiple threads on a CMT system
- Compilers, Tools, and Performance - OpenSolaris Japan
- Developing and deploying software on the UltraSPARC-T1
- Evaluating training data for profile feedback ...
- Multithreaded programming for CMT sytems
- Parallelising a serial application
- SVOSUG Compiler Flags
- SVOSUG OpenSPARC
- SVOSUG Parallelisation
- SVOSUG book presentation
- Solaris and Sun Studio
- Strategies for improving the performance of serial codes on a CMT system
- Techniques for utilizing CMT