|
Authored by: indyandy on Sunday, May 20 2012 @ 07:05 AM EDT |
[Ed:<br>
1. pdftotext and copy/paste from Evince both introduce many
typos (sometimes 'd' becomes 'c', 'J' becomes ']', some words disappear
altogether... <br>
I have tried to correct all these but if anything
looks wrong the error is probably mine.<br>
2. The reason for entering
this into evidence is probably this line:<br>
<br>
- Removed
various incarnations of the "J word" from the
SDK.<br>
<br>
]<br>
<br>
&
nbsp; Atom
Badge<br>
photo<b
r>
All weekly snippets
from Andy McFadden
(fadden)<br>
<br>
&a
mp;nbsp;PDB page - WWW page - MOMA - OKRs - Google Resume - Email - This page
with tabs<br>
Wed,
Jan 2,
2008<br>
[
delete]<br>
<br>
&am
p;nbsp;Last week:<br>
<br>
- (Holiday
vacation)<br>
<br>
This week:<br>
<br>
-
Work on mterp.<br>
<br>
Thu, Dec 27,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvlk
VM:<br>
- Worked on
"mterp".<br>
- Corrected
reflection access check on protected fields.<br>
-
Did some more directory renaming.<br>
- One interview candidate
lunch.<br>
<br>
This week:<br>
<br>
-
(Christmas holiday + two vacation days)<br>
<br>
Mon, Dec
17, 2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Split DEX file access code out into a
static library. Shifted<br>
lots of code
around.<br>
- Added ability to run
"dexdump" on a Jar/apk/zip with
"classes.dex" inside.<br>
-
Added "dexlist" utility to list methods found in a DEX
archive.<br>
- Added API for Dalvik-level
instruction counting.<br>
- Changed internal
exception throws to use "descriptor" form of class
name.<br>
- Added additional access check on
protected field access through reflection.<br>
- Stripped out some
more simulator cruft.<br>
- Started learning
Python.<br>
<br>
This week:<br>
<br>
-
Work on asm verslon of interpreter.<br>
<br>
Mon, Dec 10,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Finished up filename remapping in
simulator.<br>
- Added "fake" device entry for
/sys/android_power entries.<br>
- Removed last bit of sim-specific
stuff in libhardware.<br>
- Added touch-screen support to
simulator.<br>
- Added system property to enable Java language
assertions ln Dalvik.<br>
Added support for class/package name
matching in -ea/-da.<br>
- Fixed a bug in Dalvik that could try to
execute code in an<br>
uninitialized class when throwing an exception
from JNI.<br>
- Started on Dalvik instruction count
reporting.<br>
<br>
This
week:<br>
<br>
- Finish up instruction count
mechanism.<br>
- Start on asm interpreter for
Dalvik?<br>
<br>
Mon, Dec 3,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Fixed a bug with multiple
re-initializations of a class that fails to
load.<br>
- Fixed a bug with null references in
reflection code.<br>
- Corrected float-to-int
conversions.<br>
- Investigated "can't
create 764 threads" issue.<br>
- Created an alternative
implementation of system properties for simulator.<br>
- Worked on
transparent filename remapping in simulator.<br>
- Renamed a couple of
major directories in the source tree.<br>
- (one
interview)<br>
<br>
This
week:<br>
<br>
- Finish sim filename
remapping.<br>
- Work on Dalvik
stuff.<br>
<br>
Mon, Nov 26,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Got basic set of fake drivers (display,
input, logging) working with<br>
simulator. Also implemented
"vibrating notification mechanism".<br>
- Removed a
bunch of sim-specific code.<br>
- Fixed a bug in JNI local
references<br>
- Chased down an incorrect exception thrown from native
code when<br>
''inflate'' sees bad data.<br>
- (Out
Thursday/Friday for Thanksgiving)<br>
<br>
This
week:<br>
<br>
- Continue work on sim, notably system
properties and filename remapping.<br>
<br>
Mon, Nov 19,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Celebrated the public launch of the Android
SDK.<br>
- Read an unhealthy number of blogs, news articles, and press
releases.<br>
- Worked on simulator
evolution:<br>
- Moved simulator communication
channel out of runtime and into preload
lib.<br>
- Got ''fake device''
infrastructure working.<br>
- Got most
of /dev/graphics/fbO, /dev/ttyO, and /dev/input/eventsO working.<br>
-
Chased after the "Binder thread explosion"
bug.<br>
<br>
This week:<br>
<br>
-
Finish up /dev/input/eventsO.<br>
- Write /dev/log/*.<br>
-
Start on filename substitution.<br>
<br>
Mon, Nov 12,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Reviewed patent
application.<br>
- Removed various incarnations of the "J
word" from the SDK.<br>
- Began simulator overhaul: launch
runtime in separate xterm, with<br>
LD_PRELOAD wrapper. Removed
"ui-hardware" classes and interfaces.<br>
- Fixed
''ls -R'' behavior.<br>
- Fixed bug in dmtrace (nee jtrace)
profiling.<br>
- Various minor changes to prep for SDK
launch.<br>
<br>
This week:<br>
<br>
-
Continue simulator work.<br>
<br>
Mon, Nov 5,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Spent some time configuring a MacPro as a
Linux build machine.<br>
- Worked with jparks and mathias to get the
Linux simulator working agaln.<br>
- Stripped out some simulator
cruft.<br>
- Started fiddling around with planned simulator
updates.<br>
- Last-minute stuff for
M3.<br>
<br>
This week:<br>
<br>
-
Continue work on simulator evolution.<br>
- Read lots of news
articles.<br>
<br>
Mon, Oct 29,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Added binary event log output to
"logcat". Fixed the binary
logging<br>
implementation. Added a log tag map.<br>
-
Worked on Dalvik VM:<br>
- Reduced overhead when
calling into the interpreter.<br>
- Rearranged
EXPORT_PC handling so we do less work.<br>
- Made
the main VM thread more generic, so that it's possible for<br>
other
threads to join() on the main thread.<br>
- Fixed
bytecode verification when finding the best superclass of<br>
two
array classes.<br>
- Show more detail when a
finalizer throws an uncaught exception.<br>
-
Ensure existing processes blow up if you replace one of the
core<br>
Java classes.<br>
- Added bytecode disassembly to
"dexdump" tool.<br>
<br>
This
week:<br>
<br>
- Continue with Dalvik stuff.<br>
-
Look into making the simulator build more
device-like.<br>
<br>
Mon, Oct 22,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Resurrected stand-alone benchmark test
app.<br>
- Worked on Dalvik VM:<br>
-
Improved verification of invoke-super. Removes need for a runtime
test.<br>
- Changed verification to switch off of
a propery, rather than an #ifdef.<br>
- Reduced
thread-local storage lookups by passing a pointer around<br>
in
performance-critical areas. Sped up JNI and synchronized
blocks.<br>
- Pushed for (and got) a decision on how we're fixing our
IPC mechanism.<br>
- Participated in a promotion & slotting
committee (29 candidates).<br>
<br>
This
week:<br>
<br>
- Continue Dalvik performance &
correctness changes.<br>
<br>
Mon, Oct 15,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Wrote up proposal for Binder driver
replacement. Discussed with a few people.<br>
- Helped track down some
JNI global reference leaks.<br>
- Pursued the "slow
classloader" problem (identified, partially<br>
addressed
with a ZipEntry change, redirected to core Java lib) .<br>
- Purused
the "uncaught exceptions don't work" problem
(identified,<br>
redirected to framework) .<br>
- Worked on
Dalvik VM:<br>
- Refactored the ''instanceof''
cache into a more general mechanism.<br>
- Used
the cache to speed up interface calls.<br>
-
Correctly handle virtual calls to abstract methods
(for<br>
out-of-sync Jar files).<br>
- Updated some
developer docs.<br>
<br>
This
week:<br>
<br>
- Promotion/slotting
committee.<br>
- Continue with Dalvik stuff.<br>
- Get IPC
replacement figured out.<br>
<br>
Mon, Oct 8,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Added feature in VM that copies
stdout/stderr to log file.<br>
- Made a couple minor changes to help
others debug problems.<br>
- Switched to IPC rewrite full
time.<br>
- Wrote some code for the previous
design (not checked in) .<br>
- Became concerned
about scheduling and started thinking about<br>
alternate
plans.<br>
<br>
This week:<br>
<br>
-
Finalize what we're doing with IPC.<br>
<br>
Mon, Oct 1,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Added some static tests to Java
verifier. Rearranged failure<br>
logging to reduce output
size.<br>
- Enabled the Java bytecode
verifier.<br>
- Generalized the reference table
mechanism. Use the "expandable"<br>
mode for JNI
global refs and some GC heap stuff.<br>
- On
thread detach, release all monitors entered via the
JNI<br>
MonitorEnter function.<br>
- For
JNI compliance, fail if somebody tries to detach a thread
with<br>
Java frames on the stack.<br>
-
Added JNI GetObJectRefType method. We should be JNI 1.6 compliant
now.<br>
- Followed up on digit's TCP_NODELAY discovery by runnlng
some<br>
experiments and then disabling Nagle in DDMS and VM
JDWP.<br>
- Spent some time with crazybob talking about the IPC
implementation.<br>
- Helped some people figure out issues uncovered
with -Xcheck:Jni.<br>
- Followed up on a couple of pioneer issues
("bad" APK hosing boot<br>
process, ServerSocket not
closing properly).<br>
- Finished peer
revlews.<br>
<br>
This week:<br>
<br>
-
Investigate interface call speedup.<br>
- Clean up some stuff in the
VM.<br>
- Help out with memory leak
issues.<br>
<br>
Mon, Sep 24,
2007<br>
[delete<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Implemented some slower but EABI-correct
register-access<br>
primitives in
interpreter.<br>
- Implemented a "fast
path" in the ARM native JNI call bridge to<br>
make things
faster under EABI.<br>
- Fixed initialization of
Java.lang.Class.<br>
- Tweaked thread dumps to
help with system debugging.<br>
- Fixed some minor stuff in Java
libs.<br>
- Forced "check JNI" to be enabled. Dealt
with the ensuing hilarity.<br>
- Chased after a couple of memory
leaks.<br>
- Read through some "new IPC" stuff from
crazybob.<br>
- Worked on performance peer reviews
(six).<br>
- Mentor for Andy Stadler.<br>
- (Got caught up
after vacation)<br>
<br>
This
week:<br>
<br>
- Finish peer reviews.<br>
- Work
with crazybob on "new IPC".<br>
- Deal with whatever
comes up.<br>
<br>
Mon, Sep 17,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- (out on
vacation)<br>
<br>
This week:<br>
<br>
-
Get caught up on current events.<br>
- Enable
verification.<br>
- Write static verification tests.<br>
-
Work on perf review stuff.<br>
<br>
Tue, Sep 4,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Made
"-Xverify:{none,remote,all}" do what they should.
Got<br>
verification working
end-to-end.<br>
- Rearranged optimization to
respect "-Xdexopt: {all,verified}".<br>
- Added some
code to force optimization+verification of class files<br>
when the
system first boots. This reduces the delay seen on first
app<br>
launch.<br>
- Worked on performance
revlew.<br>
- (Out Friday)<br>
<br>
This
week:<br>
<br>
- Monday was holiday, in Tuesday, away
Wednesday-Friday. Mostly<br>
trying not to break
things.<br>
- Out all next week too.<br>
<br>
Mon,
Aug 27, 2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Rearranged class loading to perform
verification on<br>
non-pre-verified
classes.<br>
- Enabled "lite"
verification; code flow analysis still too
slow.<br>
- Corrected handling of package-scope
access checks during opt/verify.<br>
- Added page
access guards on LinearAlloc regions to help track down<br>
an EABI
memory corruption bug<br>
-Expanded set of JNI
calls you're allowed to make with an exception<br>
pending (1.6
spec)<br>
-Updated jni.h to remove some fancy new
warn1ngs.<br>
- Added flags to disable signal
catching.<br>
- Partially restored the stand-alone performance
tests.<br>
- Took some measurements with and without mkf's SSA
optimizations.<br>
- Spent some time examining the performance of JDWP
to the device and emulator.<br>
- Attended the Android coming-out tech
talk.<br>
<br>
This week:<br>
- Work on
performance review.<br>
- Improve performance of verified code flow
analysis.<br>
- Add some static verification
tests.<br>
<br>
Mon, Aug 20,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Finished development on bytecode
structural verifier. Added more<br>
detailed checks on short
integers. Corrected common superclass<br>
determination. Reduced
memory usage and improved speed.<br>
- Blocked
optimization and pre-verification of classes defined in<br>
multiple
DEX files.<br>
- Eliminated VMThrowable class,
folding it into Throwable.<br>
- Added logging of
exceptions thrown from finalizers.<br>
- Added
printLoadedClasses to help with Zygote performance
examination.<br>
- Fixed a bug that would cause
Eclipse to break on caught exceptions<br>
that straddled a native
call.<br>
<br>
This week:<br>
<br>
-
Continue static verification work. Enable (warn-only mode) in live
system.<br>
<br>
Mon, Aug 13,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- (away on
vacation)<br>
<br>
This week:<br>
<br>
-
Get caught up.<br>
- Finish bytecode verification.<br>
-
Address some memory profiling analysis needs.<br>
<br>
Mon,
Aug 6, 2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Continued work on verifier. Code-flow
analysis is complete, but<br>
we've decided to extend it slightly
beyond what the spec requires.<br>
- Fiddled with
exception logging to help track down excessive<br>
exception
activity.<br>
-Aligned array obJects for
EABI.<br>
<br>
This week:<br>
<br>
- Out
on vacation all week.<br>
<br>
Mon, Jul 30,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Made good progress on bytecode
verifier.<br>
- Moved uncaught exception handling
cor the main thread into the<br>
thread-detach
code.<br>
- Fixed Class.newinstance to do access
checks properly (Noser).<br>
- Fixed some
reflection exception handling problems exposed by jython.<br>
- One
phone screen.<br>
<br>
This
week:<br>
<br>
- Continuing on with the
verifier.<br>
<br>
Mon, Jul 23,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Worked on bytecode
verifier.<br>
- Changed the way internal
exceptions are initialized to match<br>
expectec
behavior.<br>
-Added JNI vfprintf() and abort()
hooks.<br>
- Fixed up some stuff from the Noser
integration.<br>
-Filed several bugs on improper use of JNI
NewGlobalRef ln our sources.<br>
- One
interview.<br>
<br>
This
week:<br>
<br>
- Continue work on
verifier.<br>
<br>
Mon, Jul 16,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Continued work on Java bytecode
verifier<br>
- Found last week's heisenbug
(gcc-4.2.0 bug)<br>
- Worked with others to chase misc bugs
(cheese-scrolling throw-fest,<br>
spinning Spinner, Bitmap heap
trasher, sluggish Mac sim,
nuance<br>
DetachCurrentThread)<br>
- (away on vacation
Friday)<br>
<br>
This week:<br>
<br>
-
Continue Java bytecode verifier<br>
<br>
Mon, Jul 9,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvlk
VM:<br>
- Worked on some classfile verification
stuff.<br>
- Added -Xverify
option.<br>
- Changed thread startup from
spin-wait to condition wait. Took<br>
some thread startup
timings.<br>
- Enabled _memcmp16() and fixed some
bugs in String.compareTo()<br>
- Removed JamVM from the
build.<br>
- Spent a bunch of time chasing a Heisenbug
(771329).<br>
- (Wednesday was a
holiday)<br>
<br>
This week:<br>
<br>
-
Continue chasing the Heisenbug.<br>
- Work on Java Class
verification.<br>
<br>
Mon, Jul 2,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Dalvik
VM:<br>
- Various improvements to JDWP debug
support (simplified startup,
"server=n")<br>
- Fixed a bug in
stack overflow exception handling.<br>
- Changed
frame depth calculation to improve single-step
execution<br>
performance.<br>
-Added
some additional tests to -Xcheck:Jni.<br>
- Fixed a stall in DDM
initialization.<br>
- Fiddled with LD_ASSUME KERNEL for our goobuntu
systems.<br>
- Worked on my OKRs.<br>
<br>
This
week:<br>
<br>
- Start work on Java classfile
verifier.<br>
<br>
Mon, Jun 25,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Finished EABI-compliant JNI call bridge
(in ARM assembly).<br>
- Aligned long/double
fields on 64-bit boundaries by reshuffling field
order.<br>
- Wrote replacement 64-bit arg decoder
for internal natives.<br>
- Fixed a rare bug that
hit when a debugger attached at the wrong
moment.<br>
- Fixed a bug that could lock up a VM
if DDMS was left connected for too long.<br>
-
Reduced class lookup-by-name calls by caching a reference to [Foo in
Foo.<br>
-Experimented with a JDWP speed
improvement (which didn't work).<br>
- Fixed an fd leak in
DDMS.<br>
- One interview.<br>
<br>
This
week:<br>
<br>
- Work on Dalvik.<br>
- Figure out
some OKRs.<br>
<br>
Mon, Jun 18,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Reduce native heap usage in Zip archive
support.<br>
- Fixed some VM startup ordering
issues that were blocking Noser.<br>
- Wrote a
simple linear allocator to hold bits and pieces of class
files.<br>
- Made the VM-internal hash table load
factor adjustable, and<br>
tweaked it for better
performance.<br>
- Allocate Java thread stacks
with mmap() instead of malloc() .<br>
- Started
work on ARM EABI support.<br>
- Chased down some JNI problems for
Nuance that turned out to be a bug<br>
in our dynamic
linker.<br>
- One interview.<br>
<br>
This
week:<br>
<br>
- Finish ARM EABI support in
Dalvik.<br>
<br>
Mon, Jun 11,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Added ZipFileRO, an extremely
memory-conscious Zip archive access class.<br>
- Replaced all
device-side usage of ZipFile/ZipEntry classes with ZipFileRO.<br>
-
Evaluated correctness & performance of mathias'
__memcpy16.<br>
- Remove system class loader from app loader call
sequence.<br>
- Worked on Dalvik
VM:<br>
- Implemented
Java.lang.reflect.Method.getExceptionTypes(), now that<br>
we have
exception lists in DEX.<br>
- One phone screen.<br>
- (Out
Thursday/Friday on vacation)<br>
<br>
This
week:<br>
<br>
- Continue with some Dalvik memory footprint
reduction and performance stuff.<br>
<br>
Mon, Jun 4,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
-Moved to a new office.<br>
-
Worked on Dalvik VM:<br>
- Improved
spin-on-suspend handling.<br>
- Added support for
Java thread priorities. Added missing pieces
of<br>
Thread/ThreadGroup.<br>
- Added
AccessController and ProtectionDomain features, notably
the<br>
getStackDomains() method, for Noser security
work.<br>
- Explored alternative stack allocation
methods.<br>
- Fixed a JDWP bug.<br>
-
Two interviews (one cancelled shortly before it started)<br>
- (Monday
was holiday)<br>
<br>
This
week:<br>
<br>
- Work on reduced-heap Zip
support.<br>
- (On vacation
Thursday/Friday)<br>
<br>
Tue, May 29,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on
DalvikVM:<br>
- Sped up native
calls.<br>
- Wrote inline versions of
String.equals() and String.compareTo()<br>
(6-40x faster
than Java).<br>
- Changed DEX file
section alignment to 64-bit for pending EABI
changes.<br>
- Added
"-Xss" flag, use it to set default stack
sizes.<br>
- Rearranged the
wait-for-suspend code.<br>
- Added TRACE_ALLOC_COUNTS flag to jtrace.
If set, the allocation<br>
counters are written into the key
file.<br>
- Added some misc fields (total calls, syscall benchmark) to
jtrace key header.<br>
- Met with patent lawyers.<br>
- One
interview.<br>
<br>
This
week:<br>
<br>
- Dalvik VM performance &
correctness.<br>
<br>
Mon, May 21,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Experimented with fixed register
assignments in interpreter core.<br>
- Tracked
down and fixed a bug in debugger method
invocation.<br>
- Added Java.lang.Thread
constructor that takes a stack size.<br>
Corrected size bounds in
VM.<br>
- In DEX optimizer, replace calls to
ObJect.<init> with instructions<br>
that are treated as
no-ops in standard interpreter.<br>
- Added an
"inline implementation" instruction. Wrote
inline<br>
versions of String.length() and
String.charAt().<br>
- Substantially rewrote "efficient
Java" document. Reformatted entire<br>
document, edited
existing sections, added new material.<br>
<br>
This
week:<br>
<br>
- Continue performance
work.<br>
<br>
Mon, May 14,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Enabled instruction rewriting in the DEX
optimizer. Improves the<br>
speed of virtual method calls and
accesses to instance fields.<br>
- Wrote a cache
for the results of ''instanceof'' and ''checkcast''<br>
operations.
Iterated until useful.<br>
- Moved DEX class name
lookup from a heap-allocated hash table to<br>
shared-memory
storage.<br>
- Changed a large number of functions
from "JValue blah ( ... ) to<br>
"void blah ( ... ,
JValue* pResult). This works out better on ARM, and<br>
improves the
performance of native methods returning void (of which we<br>
have
many) .<br>
-Added some JNI performance and
correctness tests.<br>
- Replaced the JNI native
call bridge with a hand-coded ARM assembly version.<br>
- Continued
the quest for Java readability.<br>
- One phone
screen.<br>
<br>
This week:<br>
<br>
-
Jury cuty. Assuming I'm not called up:<br>
-
Continue Dalvik performance work.<br>
- Add some
instrumentation features requested by
jparks/veenstra/etc.<br>
<br>
Mon, May 7,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
-Completed work on optimization of virtual
fields and instance methods.<br>
- Reworked
optimization mechanism to use fork+exec instead of just
fork.<br>
- Added exception-wrapping to
Java.lang.reflect.Method.invoke
implementation.<br>
- Added an instruction counter
to get a sense for which instructions<br>
are popular and which are
going unused.<br>
- Made some minor performance
tweaks.<br>
<br>
This week:<br>
<br>
-
Continue Dalvik performance work.<br>
- Finish Java readability review
work.<br>
<br>
Mon, Apr 30,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Reorganized DEX file loading so that
generation and caching of the<br>
byte-swapped version happens
generally (i.e. not merely as a<br>
side-effect of Jar extraction)
.<br>
- Compute and store inter-DEX dependency
information. Re-optimize<br>
files when a dependency
changes.<br>
-Examined VM loaded-classes hash
table performance.<br>
- Fixed a problem with
debugger-initiated method invocations that<br>
throw
exceptions.<br>
- Worked on DDMS:<br>
-
Warp client selection when a VM is waiting for a
debugger.<br>
<br>
This week:<br>
<br>
-
Finish up Dalvik field/method access
optimizations.<br>
<br>
Mon, Apr 23,
2007<br>
[delete]<br>
<br>
- Worked on Dalvik
VM:<br>
- Removed most of the overhead associated
with debugger support from<br>
the interpreter core, resulting in a
~30% speedup.<br>
- Made miscellaneous minor
speedups (strict-aliasing, interpreter<br>
size reduction)
.<br>
- Tried some performance enhancements that
didn't work.<br>
- Made some improvements to the
performance tests.<br>
<br>
Mon, Apr 16,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Spent a bunch of time fiddling with the
performance tests to try<br>
to get a consistent set of meaningful
numbers.<br>
- Improved performance by inlining
part of
class/field/method/string<br>
resolution.<br>
&
;nbsp;-Moved some low-use values out of the Method struct. Reduced
heap<br>
usage by 12 bytes per
method.<br>
- Reduced the situations in which we
initialize a class to those<br>
specified in the VM
spec.<br>
- Reshuffled VM source tree, moving
headers next to sources.<br>
- Show debug info
breakdown in "dexdump -S".<br>
-
Fixed a bug that prevented strings in Object arrays
from<br>
displaying nicely in the debugger.<br>
- Worked on
DDMS:<br>
- Changed "Halt"
button to call Runtime.halt() instead of<br>
Runtime.exit(). Bypasses
some of the exit processing.<br>
- Cleaned up some code for a
readability review.<br>
- Wrote up
OKRs.<br>
<br>
This week:<br>
<br>
-
Continue Dalvik VM performance work.<br>
<br>
Mon, Apr 9,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Rewrote DEX file loading to maximize use
of shared memory,<br>
reducing native heap
requirements.<br>
- Fix a spin-on-suspend when a
GC happens while a profiled thread is<br>
waiting to
exit.<br>
Worked on
DDMS:<br>
- Cosmetic touch-ups on heap
stats.<br>
- Added a "cause GC"
button.<br>
- Added space for native heap
info.<br>
Provided a work-around for slow log
window performance under Mac OS.<br>
- Wrote a command-line Java
performance measurement tool.<br>
- Attended daily
"aardvark" release meetings.<br>
<br>
This
week;<br>
<br>
- Continue performance improvements,
focusing on DEX file optimization work.<br>
<br>
Mon, Apr 2,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Added "inflate"
support to classes.dex loading.<br>
- Investigated
debugger performance issues.<br>
- Corrected VM
internal hash table implementation.<br>
-
Quick-reject debugger connection attempts when one is already
connected.<br>
When waiting for a
debugger, return after it has connected and<br>
been idle for a set
period (to allow it a chance to set breakpoints).<br>
-Worked on
DDMS:<br>
- Show tid, status, utime, and stime in
the "threads" panel.
Update<br>
periodically.<br>
-Chased
after some adb-related problems.<br>
- Reviewed
and updated developer documentation.<br>
- Participated in
"aardvark" status meetings.<br>
- One phone
screen.<br>
<br>
This week:<br>
<br>
-
Work on Dalvik VM<br>
<br>
Mon, Mar 26,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on
"ddms"<br>
- Finished hooking up
"preferences" items.<br>
- Added
a color key to the heap map.<br>
- Don't try to
scan the device if it's in the boot loader.<br>
-
Started work on retrieving per-thread CPU usage stats.<br>
- Worked on
Dalvik VM<br>
- Prefer new
pthread_cond_timedwait_monotonic() for
ObJect.wait()<br>
- Allow global references table
to expand.<br>
- Implemented JNI direct byte
buffer calls.<br>
- Reduced the VM's debug-level
log output.<br>
- Implemented
Java.lang.reflect.Field get/set calls.<br>
-
Fiddled with some VM options after the first ever
Dalvik<br>
performance review. Toned down paranoia on ''release''
builds to<br>
improve device
performance.<br>
<br>
Dalvik is now the default on
devices.<br>
<br>
This week:<br>
<br>
-
Finish per-thread CPU stats in ddms.<br>
- Dalvik VM performance
work.<br>
<br>
Mon, Mar 19,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Work on
DDMS<br>
- Added preferences screens with JFace.
Implemented most of them.<br>
- Improved the
network I/0.<br>
- Refactored client list. Added
"waiting for debugger"
icon.<br>
- Send the app name up when it
changes.<br>
- Fixed some ordering issues when
running Dalvik on the device.<br>
- Spent a day hunting down edge
cases exposed by attaching "Jdb" and<br>
letting the
system run.<br>
<br>
This
week:<br>
<br>
- Finish wiring up the DDMS
preferences.<br>
- Work on Dalvik VM (monotonic clock waits, global
ref table) .<br>
<br>
Mon, Mar 12,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on
DDMS:<br>
- Added it to the build. Got it
working on Macs.<br>
- Added "debug
selected VM" feature.<br>
- Added
skeletal heap panel UI for dbort.<br>
- Changed
reply routing to allow for generic "fail"
packet.<br>
- Added device screen shot
feature.<br>
- Added device command output
capture; used with
"dumpstate",<br>
"dumpsys", and
"logcat".<br>
- Fixed lots of
little things in the UI.<br>
- Added Java "assert"
statement support to both VMs.<br>
- In Dalvik VM: ignore breakpoints
and other events while executing<br>
code on behalf of the
debugger.<br>
- In Dalvik VM: treat JNI warnings as fatal errors (with
a to-be-added<br>
command-line option to mellow them out) Made
"Check JNI" the<br>
simulater
default.<br>
- Spent some time at the "Android boot
camp" dry run.<br>
- One
interview.<br>
<br>
This
week:<br>
<br>
- Continue work on
DDMS.<br>
<br>
Mon, Mar 5,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Added thread creation/death notifications
to DDM.<br>
- Started work on DDM server user interface. Spent most of
the week on this.<br>
- Added an "is debugger
connected?" feature and a "change JDWP
listen<br>
port" feature to both VMs.<br>
-
Participated in ''client team sourcing event''.<br>
- One
interview.<br>
<br>
This
week:<br>
<br>
- Contine work on
DDM.<br>
<br>
Mon, Feb 26,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on
DDM:<br>
- Got enough working to register Java
"hello" message handlers on<br>
both sides and
exchange data.<br>
- Updated debugger pass-through
to recycle client connection when<br>
debugger
drops.<br>
- Added DDMS support to JDWP
code.<br>
- Added a couple of calls to our NIO
implementation.<br>
- Helped reed/abliss chase after some resource
leaks that presented as<br>
global reference table
overflows.<br>
- One phone screen<br>
- (Monday was
holiday)<br>
<br>
This week:<br>
<br>
-
Continue with DDM server and client.<br>
<br>
Tue, Feb 20,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Fixed a number of bugs in Dalvik and
JamVM.<br>
- Added file info to "jtrace"
output.<br>
- Worked on DDMS. Currently shuffling packets around
with NIO.<br>
- One phone screen.<br>
<br>
This
week:<br>
<br>
- Continue work on
DDMS.<br>
<br>
Mon, Feb 12,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Implemented per-thread and default uncaught
exception handlers (in<br>
both JamVM and Dalvik VM) .<br>
-
Worked on Dalvik VM:<br>
- Added support for
-Xrunjdwp/-agentlib:jdwp= options.<br>
-
Rearranged JDWP startup to allow "suspend=y".<br>
-
Worked on Dalvik Debug Monitor design doc.<br>
- Started on Dalvik
Debug Monitor server (ddms). Added SWT to main
build.<br>
<br>
This week:<br>
<br>
-
Continue work on ddms.<br>
<br>
Mon, Feb 5,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Worked on Dalvik
VM:<br>
- Fixed bug in libffi that only manifested
on Linux/x86 with<br>
optimizations
enabled.<br>
- Implemented parts of
ClassLoader.getResource().<br>
- Added DEX-in-Jar
support to user-defined class loaders.<br>
-
Corrected JNI AttachCurrentThread behavior.<br>
-
Corrected JNI FindClass behavior to use system class loader
rather<br>
than bootstrap. This allows CLASSPATH to be used for the
initial<br>
class.<br>
- Check method
return types in -Xcheck:Jni.<br>
- Chased after
misc bugs people found now that Dalvik is more widely
used.<br>
- Added a few things that the
"mauve" test suite wanted.<br>
<br>
This
week:<br>
<br>
- Implement "-Xrunjdwp"
args.<br>
- Get ClassLoader.getResource() working.<br>
-
Continue to address Dalvik issues as they
arise.<br>
<br>
Mon, Jan 29,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Work on Dalvik
VM:<br>
- Added support for loading DEX files from
Zip archives to bootstrap<br>
class
loader.<br>
- Added local-reference abuse checking
to -Xcheck:jni. Fixed a<br>
couple of problems it found, reported
others.<br>
- Added libffi, so we can use PowerPC
macs.<br>
- Announced general availability of Dalvik at group
meeting.<br>
- (Out sick most of
Friday)<br>
<br>
This week:<br>
<br>
-
Work on Dalvik VM.<br>
- Work on resource
loading.<br>
<br>
Mon, Jan 22,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Dalvik
VM:<br>
- Finished work on initating class loaders
in Dalvik.<br>
- Replaced the hold-all
"u8" type with a union throughout the code.<br>
-
Corrected some bugs in the JDWP implementation in both VMs.
Added<br>
some missing features that IntelliJ
required.<br>
- Spent most of Tuesday with visitors from
Korea.<br>
- (Monday was holiday)<br>
<br>
This
week:<br>
<br>
- Roll Dalvik VM out to the soon-to-be
adoring masses.<br>
<br>
Tue, Jan 16,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- Wrote a JNI calling convention converter.
Ran it against our<br>
sources, which used C-style JNI calls in C++
code.<br>
- Dalvik VM:<br>
- Reworked
some VM class loader innards.<br>
- Did most of
the work required to support initating class loaders.<br>
- Perf:
write peer revlews.<br>
- One
interview.<br>
<br>
This
week:<br>
<br>
- Finish initiating class
loaders.<br>
- Meet with some Java people.<br>
- Work on
Dalvik.<br>
<br>
Mon, Jan 8,
2007<br>
[delete]<br>
<br>
Last
week:<br>
<br>
- More jni.h tweaks, mostly to make JNIHelp.h
work with either C or C++.<br>
- Changed JamVM's RegisterNatives
method to link methods immediately,<br>
rather than on first
use.<br>
- Override the class loader in JNI FindClass while handling
JNI OnLoad.<br>
- Fixed a couple of bugs in the JDWP
support.<br>
- Work on Dalvik VM:<br>
-
Added basic class loader support to VM. Added DEX file loading
to<br>
Java ClassLoader.<br>
- Added
"lazy" JNI native method binding by
signature.<br>
- Hooked up local variable table
support for the debugger.<br>
- Improved debugger
object registry (fewer registrations, more<br>
appropriate data
structure)<br>
- One interview.<br>
- (four day
week)<br>
<br>
This week:<br>
<br>
-
Performance reviews.<br>
- Work on Dalvik
VM.<br>
<br>
[ Reply to This | Parent | # ]
|
|
|
|
|