Using Valgrind to find memory problems - Part Four
Now that I had some experience dealing with memory leaks, I decided to try to
reduce the memory leaks present in MoarVM. After a few quick wins, I found a
situation where MVMCallsite
objects referred to by MVMCompUnit
objects
MVMCallsite
objects are the MoarVM representation of Perl 6 signatures,
and MVMCompUnit
objects represent the result of a body of source code being
compiled
MVMCallsite
objects are the MoarVM representation of Perl 6 signatures,
and MVMCompUnit
objects represent the result of a body of source code being
compiled
were not being cleaned up when their parent compunit is collected.
I took it upon myself to plug this leak!
Posted on 2015-12-27
Address Your Sanity with AddressSanitizer - Part Three
It took a while for me to get back in the swing of things after I returned from Japan, but I eventually got there. The first step to fixing that use-after-free bug was finding out which test was triggering the failure, which meant building a MoarVM with address sanitation (often referred to as ASan) support.
Read More...Posted on 2015-12-21
Hunted By a Leak - Part Two
In my previous post,
I talked about a slowdown in a Perl 6 process I was fixing, and how I
discovered that the cause was really a memory leak. Instead of looking for the
memory leak in Proc::Async
, I decided to look in run
, which also spawns
children and exhibited the leak, but works in a synchronous manner. To find
the Perl 6 code that was causing the leak, I wrote some code that would call
run repeatedly:
Posted on 2015-12-15
Tracking Slowdowns in Creating Child Processes - Part One
When I use Perl 5, I do a lot of shelling out to external commands; after all, that's what Perl is good at! So it should come as no surprise that I do the same with Perl 6, which means a lot of the time and effort I spend helping with Perl 6 is improving the interaction with external commands.
Read More...Posted on 2015-12-08
Intermediate SQL: WHERE vs HAVING
Recently, at Work I gave an introductory SQL tutorial.
Since the purpose of the tutorial was to teach SQL for the purpose of answering questions
about groupings of data, the tutorial ultimately reached a discussion of WHERE
versus HAVING
.
I thought I'd share the explanation I used in case others felt confused why SQL has
two keywords that serve such a similar function.
Posted on 2015-04-30
Newer Entries Older Entries