Profile

Cover photo
Darryl Gove
Works at Oracle
Lives in California
121,388 views
AboutPostsPhotosVideos

Stream

Darryl Gove

Shared publicly  - 
 
Profiling the kernel
One of the incredibly useful features in Studio is the ability to profile the kernel. The tool to do this is er_kernel . It's based around dtrace, so you either need to run it with escalated privileges, or you need to edit /etc/user_attr to add something li...
2
1
Carlo Pradissitto's profile photo
Add a comment...

Darryl Gove

Shared publicly  - 
 
Namespaces in C++
A porting problem I hit with regularity is using functions in the standard namespace. Fortunately, it's a relatively easy problem to diagnose and fix. But it is very common, and it's worth discussing how it happens. C++ namespaces are a very useful feature ...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
**
My recent blog posts on bit manipulation are now available as an article up on the OTN community pages . If you want to read the individual posts they are: Improving performance through bit manipulation: clear last set bit Bit manipulation: Population Count...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Bit manipulation: finding a range of values
int range2(unsigned char* array, unsigned int length, unsigned char target)
{
unsigned int i=0;
// Handle misalignment
while ((length>0) && ((unsigned long long)&array[i]&7) )
{
if (array[i]>target) { return i; }
i++;
length--;
}
//...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Inline functions in C
Functions declared as inline are slightly more complex than might be expected. Douglas Walls has provided a chapter-and-verse write up . But the issue bears further explanation. When a function is declared as inline it's a hint to the compiler that the func...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Behaviour of std::list::splice in the 2003 and 2011 C++ standards
There's an interesting corner case in the behaviour of std::list::splice. In the C++98/C++03 standards it is defined such that iterators referring to the spliced element(s) are invalidated. This behaviour changes in the C++11 standard, where iterators remai...
1
Add a comment...

Communities

5 communities

Darryl Gove

Shared publicly  - 
 
Digging into microstate accounting
Solaris has support for microstate accounting . This gives huge insight into where an application and its threads are spending their time. It breaks down time into the (obvious) user and system, but also allows you to see the time spent waiting on page faul...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Improving application performance using bit manipulation optimisations
My recent blog posts on bit manipulation are now available as an article up on the OTN community pages . If you want to read the individual posts they are: Improving performance through bit manipulation: clear last set bit Bit manipulation: Population Count...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Bit manipulation: Gathering bits
In the last post on bit manipulation we looked at how we could identify bytes that were greater than a particular target value, and stop when we discovered one. The resulting vector of bytes contained a zero byte for those which did not meet the criteria, a...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Tracking application resource use
One question you might ask is "how much memory is my application consuming?". Obviously you can use prstat ( prstat -cp <pid> or prstat -cmLp <pid> ) to examine the behaviour of a process. But how about programmatically finding that information. OTN has jus...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
Missing semi-colon
Thought I'd highlight this error message: class foo
{
foo();
}

foo::foo()
{ } $ CC -c c.cpp
"c.cpp", line 6: Error: A constructor may not have a return type specification.1 Error(s) detected. The problem is that the class definition is not terminated wi...
1
Add a comment...

Darryl Gove

Shared publicly  - 
 
New articles about Solaris Studio
We've started posting new articles directly into the communities section of the Oracle website. If you're not familiar with this location, it's also where you can post questions on languages or tools . With the change it should be easier to find articles re...
2
Add a comment...
Communities
5 communities
Work
Occupation
Senior Performance Analyst
Employment
  • Oracle
    Senior Performance Analyst, present
  • Sun Microsystems Inc.
Basic Information
Gender
Male
Story
Tagline
Performance bloke in the Bay Area
Introduction
Darryl Gove is a senior principal engineer at Oracle. He works on the performance analysis and optimisation of applications and benchmarks on current and future hardware. He is the author of the books "Solaris Application Programming", "The Developers Edge", and "Multicore Application Programming". He writes a blog. on coding, compilers, performance, optimisation, and multi-threading.
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
California
Previously
UK