Oracle America, Inc. v. Google Inc.

Filing 509

DECLARATION of RUCHIKA AGRAWAL in Opposition to #496 MOTION in Limine No. 5, #494 MOTION in Limine No. 3, #492 MOTION in Limine No. 1, #493 MOTION in Limine NO. 2, #495 MOTION in Limine No. 4 filed byGoogle Inc.. (Attachments: #1 Exhibit 1-1, #2 Exhibit 1-2, #3 Exhibit 1-3, #4 Exhibit 1-4, #5 Exhibit 1-5, #6 Exhibit 1-6, #7 Exhibit 1-7, #8 Exhibit 1-8, #9 Exhibit 1-9, #10 Exhibit 1-10, #11 Exhibit 1-11, #12 Exhibit 1-12, #13 Exhibit 2-1, #14 Exhibit 2-2, #15 Exhibit 2-3, #16 Exhibit 2-4, #17 Exhibit 2-5, #18 Exhibit 2-6, #19 Exhibit 2-7, #20 Exhibit 2-8, #21 Exhibit 2-9, #22 Exhibit 2-10, #23 Exhibit 2-11, #24 Exhibit 2-12, #25 Exhibit 2-13, #26 Exhibit 2-14, #27 Exhibit 2-15, #28 Exhibit 2-16, #29 Exhibit 2-17, #30 Exhibit 3-1, #31 Exhibit 3-2, #32 Exhibit 3-3, #33 Exhibit 3-4, #34 Exhibit 3-5, #35 Exhibit 3-6, #36 Exhibit 3-7, #37 Exhibit 3-8, #38 Exhibit 3-9, #39 Exhibit 3-10, #40 Exhibit 3-11, #41 Exhibit 4-1, #42 Exhibit 4-2, #43 Exhibit 4-3, #44 Exhibit 5-1, #45 Exhibit 5-2, #46 Exhibit 5-3, #47 Supplement 5-4)(Related document(s) #496 , #494 , #492 , #493 , #495 ) (Kamber, Matthias) (Filed on 10/7/2011)

Download PDF
EXHIBIT 2-9 UNITED STATES DISTRICT COURT NORTHERN DISTRICT OF CALIFORNIA SAN FRANCISCO DIVISION ORACLE AMERICA, INC. Case No. CV 10-03561 WHA Plaintiff, v. GOOGLE INC. Defendant. SUMMARY AND REPORT OF EREZ LANDAU SUBMITTED ON BEHALF OF PLAINTIFF ORACLE AMERICA, INC. EXHIBIT 2-9 II. BACKGROUND AND QUALIFICATIONS 8. I graduated from Technion - Israel Institute of Technology as a computer engineer, and worked as a computer engineer since 1984. 9. I have over 25 years of experience in software engineering and performance optimization. During my career, I have conducted numerous performance measurements, identified performance bottlenecks, and invented techniques to improve performance. 10. Since the Sun Microsystems acquisition, I have worked on developing an embedded Java virtual machine future architecture, and porting the Java virtual machine to new platforms. (I will generally refer to the Java virtual machine as the “JVM”.) 11. I am qualified to conduct performance benchmark and testing analysis and analyze the results obtained because I have done performance measurements numerous times before for internal measurements and for customer specific projects. 2 EXHIBIT 2-9 B. Devices and Software Distributions 18. We selected a single production phone, namely the Android HTC Nexus One. Here are the specifications and links to the board and operating system platform that we installed and ran on two Android HTC Nexus One devices: http://www.google.com/phone/detail/nexusone. 19. The HTC Nexus One is a good test environment because it is representative of a real Android phone. Memory consumption is not expected to vary between phones and startup time is expected to stay proportional to other timing on the phone. Under these assumptions it is expected that the test performed will produce similar results on other Android phones as well. C. Android Sources 20. The Android sources that were used to build the Dalvik VM used during these tests were downloaded by following the Google instructions from this Google URL and specifying the froyo tag (version 2.2.1) in the git command. http://source.android.com/source/downloading.html http://source.android.com/source/initializing.html $ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo The Android sources were built using the instruction located at this URL: http://source.android.com/source/building.html http://source.android.com/source/initializing.html D. Applications Tested 21. We tested Google standard applications available in the Android repository: android.process.acore android.process.media com.android.bluetooth com.android.deskclock com.android.email com.android.inputmethod.latin com.android.launcher 4 EXHIBIT 2-9 com.android.mms com.android.music com.android.phone com.android.protips com.android.providers.calendar com.android.quicksearchbox com.android.settings com.android.voicedialer com.android.wallpaper com.cooliris.media 22. The reason for this selection of applications is these are representative of applications that Google makes available through the public Android source code repository. This will allow Google to validate this test on any platform they choose to. 23. Of note, the zygote process is the initial virtual machine (“master”) and solely exists to be cloned as new virtual machine instances for launching a new application. 24. The system_server process is also a virtual machine instance but is cloned somewhat differently. I did not make any source code modifications that would impact system_server. 5 EXHIBIT 2-9 IV. PERFORMANCE BENCHMARK AND TESTING ANALYSIS OF U.S. PATENT NO. 7,426,720 A. Overview 25. The baseline for these experiments was the Froyo release of Android, pulled from the Google git repository with the Google repo commands $ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo $ repo sync to initialize and sync from the Google repository. I made two copies of the repository that contained the Android system: (1) an unmodified copy to serve as a baseline for comparison and (2) a version with the zygote functionality that Oracle accuses of infringing the ’720 patent disabled. 26. I disabled the use of the accused functionality in Android as discussed in Appendix A. 27. The modification for experiments were restricted to two files: a. frameworks/base/core/java/com/android/internal/os/RuntimeInit.java and b. frameworks/base/core/jni/AndroidRuntime.cpp. In summary, the zygote process which is the initial (master) virtual machine which manages the virtual machine cloning (and thus sharing) was modified to call the new ‘exec’ method for the new created process (clone), so it re-initializes the process as a fresh new virtual machine (over running whatever was inherited from the master virtual machine) thus disabling the ’720 patent. The modifications are detailed and shown in Appendix A. 28. All workspaces were compiled and loaded to the device following the directions described at Google’s http://source.android.com/source/initializing.html. 29. The benchmarks used to test the performance of the workspaces were all Google standard applications available in the repository, as listed above. 30. I tested the performance of the repositories by running them on the HTC Nexus One with the two workspaces installed on two separate phones: (1) one phone to test the 6 EXHIBIT 2-9 unmodified Android source code (where the functionality that Oracle accuses of infringing the ’720 patent is practiced and not disabled – labeled “Original (copy-on-write)” in Exhibit A) and (2) another phone to test the modified Android source code (disabling the functionality that Oracle accuses of infringing the ’720 patent – labeled “No VM Sharing” in Exhibit A). 31. I ran all benchmark applications on both phones. 32. The accompanying charts attached as Exhibit A records the results of runs of a standard phone startup which launch all the default applications. B. Mtask ClassLoading Test 33. I combined HelloWorld and MtaskClassLoading tests in a single application with Google HelloActivity which says “hello” and does the class loading. That is to say, the MtaskClassLoading test says “hello” and does class loading of a given class list. The test is actually a modified version of android HelloActivity sample available under folder ‘development/samples/HelloActivity’ adding a call to MtaskClassLoading.main() method to do the class loading. 34. The class list is made of Android relevant preloaded classes. That is, the list of classes to load was taken from the Android preloaded class list. 35. 36. V. Test code is attached as Exhibit B. Logcat dumps are attached as Exhibits C and D. CONCLUSION 37. The performance benchmark testing shows as much as 40% memory savings (Android uses 51MB instead of 86MB) and also saves .10 second per application launch time. In other words, disabling the functionality that Oracle accuses of infringing the ’720 patent increases the memory consumption by 70% (because 86 is 1.7 times 51). 38. Memory savings were 2MB per each running application. This becomes more significant when executing many small widgets with a small amount of required unique memory consumption. Moreover, the results demonstrate that for applications that need more of the 7 EXHIBIT 2-9

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?