Posts Tagged “Performance”

Samsung könnte mit dem Galaxy Tab ein großer Wurf gelungen sein. Wie bei keinem anderen Gerät zu zuvor sehe ich hier das Potential das erste Android Tablet für einen Massenmarkt zu werden. Dabei ist Samsung bei weitem nicht der einzige Hersteller mit neuen Android Tablets. Archos, der erste Anbieter von Android Tablets, hat auf der IFA fünf neue Modelle vorgestellt. Und auch andere Marken wie Toshiba, Viewsonic und Hannspree haben einige Tablets mit aktueller Hardware und aktuellen Android-Versionen gezeigt. Dennoch hebt sich Samsung’s Galaxy Tab von seinen Konkurrenten ab und könnte zu einem Meilenstein für Android Tablets werden.

Am Vorabend des offiziellen Launch des Galaxy Tab durfte ich es zum ersten Mal ausprobieren. Samsung hat dazu eine kleine Gruppe von Bloggern eingeladen, zu denen auch ich gehörte. Nach dem offiziellen Launch konnte ich meinen ersten Eindruck posten (englisch). Am Messestand und vor allem am Folgeabend könnte ich es eingehender untersuchen. Die dabei entstandenen Eindrücke habe ich in zwei Teile aufgeteilt: nach den positiven Seiten kommt eine Wunschliste was man in Zukunft besser machen könnte.
Den Rest des Eintrages lesen »

Comments Keine Kommentare »

Samsung hat mir für ein paar Stunden ein Galaxy Tab zur Verfügung gestellt. Über USB und ADB konnte ich somit echte Screenshots machen und war nicht auf das Abfotografieren angewiesen. Alle 94 Screenshots sind in diesem Picasa Webalbum zu finden. Eine kleine Auswahl davon findet sich in diesem Blogpost. Besonders gelungen fand ich, dass die Standardapplikationen sehr gut auf die Größe und das Format des Bildschirms angepasst sind (was auch für die Email-App gilt, die hier nicht zu sehen ist):

Den Rest des Eintrages lesen »

Comments Keine Kommentare »

Das Galaxy Tab läuft durchgehend sehr flüssig und macht subjektiv einen sehr performanten Eindruck. Die 1 GHz CPU (ARMv7) wird bei der Grafik durch eine GPU (PowerVR SGX 540) unterstützt. Auf der Home-Screen scrollt wesentlich flüssiger als bei den meisten Android Geräten, trotz der hohen Geräte Auflösung von 1024×600. Eine detaillierte Auskunft über Geschwindigkeit geben verschiedene Benchmark Apps. Einige davon habe ich ausprobiert, darunter Linpack, Quadrant und Benchmark.

Linpack (Abbildung links) ermittelt einen Wert von 14 MFLOPS auf dem Android 2.2 Tablet. Gegenüber 8 MFLOPS des Galaxy S (Android 2.1) zwar eine wesentliche Steigerung. Jedoch hatte das Update von 2.1 auf 2.2 aufgrund des neu eingeführten JIT Compilers bei anderen Geräten einen wesentlich drastischeren Effekt. Es wäre ein Faktor von 4-5 zu erwarten gewesen. Ein Nexus One erzieht um die 30-40 MFLOPS. Eventuell läuft der JIT Compiler bei dem Vorserien noch eingeschränkt. Auch die Quadrant App (Abbildung rechts) zeigt ein ähnliches Bild: Hinter dem Nexus One und dem Moto Droid X belegt das Galaxy Tab den 3. Platz vor dem Galaxy S. Bei Quadrant fällt wie schon beim Galaxy S die im Vergleich sehr gute 3D Grafikperformance auf, die Frameraten liegen zwischen 40-60 fps.
Den Rest des Eintrages lesen »

Comments 1 Kommentar »

Here are videos of the official announcement of the Samsung Galaxy Tab at IFA, Berlin.

Here’s the main video presenting the specs:

Comments Keine Kommentare »

Samsung’s Android tablet “Galaxy Tab” was launched on September, 2nd. Being part of a small group invited by Samsung, I had the opportunity to play with the device the night before the official launch. My overall impression is that Samsung made a solid device with nice details.
Den Rest des Eintrages lesen »

Comments Keine Kommentare »

Entwickelt man für Android Performance-kritische Anwendungen fühlt man sich schnell in die Anfangszeit von Java zurückversetzt. Man muss auf die ein oder andere “Komfort”-Funktion verzichten, die man von aktuellen Java VMs gewohnt ist. In Android sind diese zwar vorhanden, aber müssen gegen Performance-Einbußen abgewägt werden. Dies liegt vor allem daran, das Android’s Dalvik VM nicht mit aktuellen und hoch optimierten JVMs mithalten kann. In gewissen Punkten erinnert Dalvik an eine VM von Java 1.0 oder 1.1, die vor über 10 Jahren aktuell waren. Viele dieser Punkte hat Google im Dokument Designing for Performance zusammengetragen. Hier finden sich dann unter anderem folgende Ratschläge, die sich leider auch negativ auf die Produktivität und Codequalität auswirken:

  • Man soll vermeiden Objekte zu erzeugen
  • Nativer Code ist wesentlich schneller als Bytecode
  • Man soll getter/setter vermeiden, ebenso enums
  • foreach soll man nur mit Arrays benutzen
  • Man soll final und static benutzen

Den Rest des Eintrages lesen »

Comments Keine Kommentare »

Bei dem am 8. Juli veröffentlichen JDK 6 Update 7 ist erstmals VisualVM dabei. VisualVM ist ein Profiler für Java Applikationen mit einer intuitiven grafischen Oberfläche. Mit dem Tool lassen sich Performance Bottlenecks und Speicherleichen einfach auffinden. Der erste Eindruck überzeugte spontan: einfach jvisualvm aus dem JDK bin Verzeichnis auswählen, die einmalige Performance Kalibrierung durchführen und schon kann man einen Java Prozess auswählen, den man untersuchen möchte. Wie das aussieht zeigen die folgenden Screenshots. Davor aber noch etwas Hintergrundinfo: VisualVM ist eine Netbeans RCP Anwendung, was es unter anderem ermöglicht, VisualVM mit Plugins zu erweitern. Durch die Aufnahme von VisualVM ist das JDK allerdings auch größer geworden: Der Download ist von 71 auf 77 MB gewachsen und nach der Installation braucht das neue Verzeichnis lib/visualvm gut 21 MB an zusätzlichen Festplattenplatz. Aber das stört heutzutage wohl niemanden mehr.

Und jetzt zu den Screenshots. Zuerst eine Übersichtsdarstellung:

Der Profiler zeigt hier an welche Methoden am meisten CPU benötigen, und zwar immer live:
Den Rest des Eintrages lesen »

Comments 2 Kommentare »

Mein Artikel “Improving Glassfish Deployment Performance in Eclipse” aus der englischsprachigen Sektion von jars.de hat es in das Glassfish Aquarium “geschafft”. Zusammengefasst ließ sich die Deployment-Geschwindigkeit mit zwei einfachen Mitteln um 40% erhöhen: Zum einen hilft ein simpler Ant-Task für Verzeichnis-basiertes (exploded) Deployment und zum Anderen den Virenscanner feintunen. Das Directory-Deployment hilft auch bei der JSP/JSF Entwicklung, da Änderungen an JSPs ohne Redeployment sofort sichtbar werden. Die Details sind im englischsprachigen Artikel nachzulesen.

Comments 3 Kommentare »

It’s well know that Netbeans supports Glassfish very well. One of the features I like most is incremental deployment, because it can save you a lot of time during development. Adam Bien posted some performance figures. Even for a large project it takes just 6 seconds using Netbeans’ incremental redeployment.

Compared to Netbeans, Eclipse with WTP seems to offer only 2nd class support for Glassfish. Unfortunately, this did not change with Eclipse 3.4 and WTP 3.0. For example, directory deployment is not supported. Publishing a EAR project to Glassfish always implies creating a new EAR File. I played around with it a bit and decided to switch back to ant. It requires just a simple ant script to copy the files into a directory structure and to call asadmin deploydir. This reduced deployment time by 20% for my EAR project. Another advantage of exploded directory deployment is that changes in JSPs (including JSF) do not require redeployment. Changes are immediately visible after copying the JSP files.

The next observation was that antivirus software had a major impact on deployment performance. Den Rest des Eintrages lesen »

Comments 8 Kommentare »

Embedded Datenbanken haben in manchen Projekten Vorteile gegenüber “echten” Datenbanken wie Oracle, MySQL und Co. Da sie direkt in die Anwendung eingebettet sind, entfällt eine Installation und Administration. Das macht sie insbesondere geeignet für Rich-Client Anwendungen. Aber auch ein Einsatz für kleine bis mittlere Server-Applikationen kann Sinn machen, wenn eine schlanke und pflegeleichte Lösung gefragt ist.

Im Java Bereich werden auch embedded Datenbanken über den Standard JDBC angesprochen. Damit hat man auch hier eine gewohnte Schnittstelle und zudem erleichtert es den Austausch des Datenbanksystems bei Bedarf. Dieser Beitrag beschränkt sich auf den relationalen Datenbanken. Objektorientierte Datenbanken wie beispielsweise db4o können auch eine Alternative sein. Insbesondere dann, wenn auf die Daten nur aus Java zugegriffen wird.

Apache Derby (Java DB), HSQLDB und H2 gelten als wichtigste embedded Java Datenbanken:
Den Rest des Eintrages lesen »

Comments Keine Kommentare »