Is there any way of showing the assembler code generated from compiling a sketch. A list of assembler commands against each C++ line would be really nice . I know some compilers do this but is there any way to make the Arduino compiler do it? I would like to work out where the memory is going and get an idea for what's efficient and what's not.

There is a utility called avr-objdump.exe in the hardware\tools\avr\bindirectory that will dump a listing of the compiled output (an elf file) showing the C source intermixed with the assembler code. You can also view a map of the memory allocation.

The following will dump the output of a compiled sketch called mySketch.pde:avr-objdump -S mySketch.elf

the elf file is in the applet subdirectory below the location of the sketch source code