Difference between revisions of "To Thumb or Not to Thumb"
(→What I need to learn) |
(→Test results) |
||
Line 47: | Line 47: | ||
nonthumb 48576 98132 37900 | nonthumb 48576 98132 37900 | ||
thumb... 40563 93107 29932 | thumb... 40563 93107 29932 | ||
+ | |||
+ | |||
+ | nled-2.52 | ||
+ | |||
+ | Produced RPM: nled-2.52-6.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 2 directories, 1 file | ||
+ | |||
+ | Binary File: usr/bin/nled | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 20776 | ||
+ | 20204 | ||
+ | 20328 | ||
+ | 0.9724 | ||
+ | 0.9939 | ||
+ | |||
+ | Directory | ||
+ | 50892 | ||
+ | 43084 | ||
+ | 42684 | ||
+ | 0.8465 | ||
+ | 1.0093 | ||
+ | |||
+ | Binary | ||
+ | 38604 | ||
+ | 30796 | ||
+ | 30396 | ||
+ | 0.7977 | ||
+ | 1.0131 | ||
+ | |||
+ | wget-1.11.4 | ||
+ | |||
+ | Produced RPM: wget-1.11.4-5.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 86 directories, 48 files | ||
+ | |||
+ | Binary File: usr/bin/wget | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 422360 | ||
+ | 420788 | ||
+ | 419852 | ||
+ | 0.9962 | ||
+ | 1.0022 | ||
+ | |||
+ | Directory | ||
+ | 1863679 | ||
+ | 1811467 | ||
+ | 1810431 | ||
+ | 0.9719 | ||
+ | 1.0006 | ||
+ | |||
+ | Binary | ||
+ | 226464 | ||
+ | 174252 | ||
+ | 173216 | ||
+ | 0.7694 | ||
+ | 1.0060 | ||
+ | |||
+ | httpd-2.2.13 | ||
+ | |||
+ | Produced RPM: httpd-2.2.13-4.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 37 directories, 334 files | ||
+ | |||
+ | Binary File: usr/sbin/httpd | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 748180 | ||
+ | 738632 | ||
+ | 736500 | ||
+ | 0.9872 | ||
+ | 1.0029 | ||
+ | |||
+ | Directory | ||
+ | 2752985 | ||
+ | 2425373 | ||
+ | 2408025 | ||
+ | 0.8810 | ||
+ | 1.0072 | ||
+ | |||
+ | Binary | ||
+ | 287988 | ||
+ | 233660 | ||
+ | 229712 | ||
+ | 0.8113 | ||
+ | 1.0172 | ||
+ | |||
+ | gimp-2.6.7 | ||
+ | |||
+ | Produced RPM: gimp-2.6.7-2.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 206 directories, 1204 files | ||
+ | |||
+ | Binary File 1: usr/bin/gimp-2.6 | ||
+ | |||
+ | Binary File 2: usr/bin/gimp-console-2.6 | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 12423104 | ||
+ | 12431184 | ||
+ | 12350600 | ||
+ | 1.0006 | ||
+ | 1.0065 | ||
+ | |||
+ | Directory | ||
+ | 45780103 | ||
+ | 43891439 | ||
+ | 43730427 | ||
+ | 0.9587 | ||
+ | 1.0037 | ||
+ | |||
+ | Binary 1 | ||
+ | 4284848 | ||
+ | 3450936 | ||
+ | 3371440 | ||
+ | 0.8054 | ||
+ | 1.0236 | ||
+ | |||
+ | Binary 2 | ||
+ | 2131228 | ||
+ | 1688860 | ||
+ | 1656092 | ||
+ | 0.7924 | ||
+ | 1.0198 | ||
+ | |||
+ | abiword-2.8.1 | ||
+ | |||
+ | Produced RPM: libabiword-2.8.1-1.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 39 directories, 617 files | ||
+ | |||
+ | Binary File: usr/lib/libabiword-2.8 | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 5561088 | ||
+ | 4779800 | ||
+ | 4742828 | ||
+ | 0.8595 | ||
+ | 1.0078 | ||
+ | |||
+ | Directory | ||
+ | 21295155 | ||
+ | 17055836 | ||
+ | 16987340 | ||
+ | 0.8009 | ||
+ | 1.0040 | ||
+ | |||
+ | Binary | ||
+ | 5806908 | ||
+ | 3450936 | ||
+ | 3371440 | ||
+ | 0.5943 | ||
+ | 1.0236 | ||
+ | |||
+ | tar-1.22 | ||
+ | |||
+ | Produced RPM: tar-1.22-8.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 79 directories, 49 files | ||
+ | |||
+ | Binary File: bin/tar | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB2 | ||
+ | THUMB / NON-THUMB | ||
+ | THUMB / THUMB2 | ||
+ | |||
+ | RPM | ||
+ | 744340 | ||
+ | 742784 | ||
+ | 742180 | ||
+ | 0.9979 | ||
+ | 1.0008 | ||
+ | |||
+ | Directory | ||
+ | 2737195 | ||
+ | 2681159 | ||
+ | 2675975 | ||
+ | 0.9795 | ||
+ | 1.0019 | ||
+ | |||
+ | Binary | ||
+ | 251844 | ||
+ | 195808 | ||
+ | 190624 | ||
+ | 0.7775 | ||
+ | 1.0272 | ||
+ | |||
+ | cpio-2.10 | ||
+ | |||
+ | Produced RPM: cpio-2.10-5.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 49 directories, 30 files | ||
+ | |||
+ | Binary File: bin/cpio | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB / NON-THUMB | ||
+ | |||
+ | RPM | ||
+ | 189908 | ||
+ | 189276 | ||
+ | 0.9967 | ||
+ | |||
+ | Directory | ||
+ | 842194 | ||
+ | 816194 | ||
+ | 0.9691 | ||
+ | |||
+ | Binary | ||
+ | 117064 | ||
+ | 91064 | ||
+ | 0.7779 | ||
+ | |||
+ | gzip-1.3.12 | ||
+ | |||
+ | Produced RPM: gzip-1.3.12-15.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 9 directories, 33 files | ||
+ | |||
+ | Binary File: bin/gzip | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB / NON-THUMB | ||
+ | |||
+ | RPM | ||
+ | 116560 | ||
+ | 115736 | ||
+ | 0.9929 | ||
+ | |||
+ | Directory | ||
+ | 263922 | ||
+ | 252086 | ||
+ | 0.9551 | ||
+ | |||
+ | Binary | ||
+ | 61708 | ||
+ | 49872 | ||
+ | 0.8082 | ||
+ | |||
+ | bzip2-1.0.5 | ||
+ | |||
+ | Produced RPM: bzip2-1.0.5-6.fc12.armv5tel.rpm | ||
+ | |||
+ | Directories and files: 7 directories, 21 files | ||
+ | |||
+ | Binary File: /usr/bin/bzip2 | ||
+ | w/o Thumb | ||
+ | THUMB | ||
+ | THUMB / NON-THUMB | ||
+ | |||
+ | RPM | ||
+ | 49476 | ||
+ | 49232 | ||
+ | 0.9951 | ||
+ | |||
+ | Directory | ||
+ | 109233 | ||
+ | 103449 | ||
+ | 0.9470 | ||
+ | |||
+ | Binary | ||
+ | 33024 | ||
+ | 28076 | ||
+ | 0.8502 | ||
+ | |||
+ | In average, THUMB reduced the sizes about | ||
+ | |||
+ | 2.24% for *.rpm files, | ||
+ | |||
+ | 7.67% for extracted directories, and | ||
+ | |||
+ | 22.16% for executables, compared to NON-THUMB. | ||
+ | |||
+ | While it might save some disk space for executable files, it doesn't make a big different for rpm packages since rpm has it's own compressing mechanism. | ||
+ | In average, THUMB produced files that are about | ||
+ | 0.24% for *.rpm files, | ||
+ | |||
+ | 0.45% for extracted directories, and | ||
+ | |||
+ | 1.86% for executables, greater than THUMB2. | ||
+ | |||
+ | I noticed that THUMB produces files that are almost as small as THUMB2's products. | ||
== Project Details == | == Project Details == |
Revision as of 18:32, 14 December 2010
Contents
Project Name
To Thumb? or Not to Thumb?
Project Description
Fedora-ARM does not use thumb. The purpose of this project is to discover whether thumb provides any significant savings in terms of code size, whether programs compiled to thumb execute more quickly or more slowly than non-thumb programs on common ARM processors, whether a thumb compilation takes more or less time than non-thumb, and whether there are any other factors that would influence the decision to support thumb. Ultimately, this project should make a recommendation on the use of the thumb instruction set for the Fedora-ARM secondary architecture.
Project Leader(s)
I will be working alone for this project.
My name is Tae Hee (Tyler) Lee and I'm taking SBR600 course in 2010 Winter Semester.
Blog @ [[1]]
thlee3 @ FAS2
thlee3 @ irc://irc.mozilla.org/seneca
Tyler.lee @ Open Source Seneca Wiki
thlee3@learn.senecac.on.ca
What I need to learn
- rpmbuild - /usr/lib/rpm/redhat/rpmrc - /usr/lib/rpm/redhat/macros - time - screen - yumdownloader - rpm2cpio
Project Plan
Goals for each release:
- 0.1 Determine whether THUMB gives advantage in file size compared to NON-THUMB.
- 0.2 Compare and contrast file sizes between NON-THUMB, THUMB and THUMB2.
- 0.3 Compare the performance of software compiled with THUMB and NON-THUMB
Test results
From a test performed on 2011-11-12 by CTyler:
........ -O2.. -g... -g stripped nonthumb 48576 98132 37900 thumb... 40563 93107 29932
nled-2.52
Produced RPM: nled-2.52-6.fc12.armv5tel.rpm
Directories and files: 2 directories, 1 file
Binary File: usr/bin/nled w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 20776 20204 20328 0.9724 0.9939
Directory 50892 43084 42684 0.8465 1.0093
Binary 38604 30796 30396 0.7977 1.0131
wget-1.11.4
Produced RPM: wget-1.11.4-5.fc12.armv5tel.rpm
Directories and files: 86 directories, 48 files
Binary File: usr/bin/wget w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 422360 420788 419852 0.9962 1.0022
Directory 1863679 1811467 1810431 0.9719 1.0006
Binary 226464 174252 173216 0.7694 1.0060
httpd-2.2.13
Produced RPM: httpd-2.2.13-4.fc12.armv5tel.rpm
Directories and files: 37 directories, 334 files
Binary File: usr/sbin/httpd w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 748180 738632 736500 0.9872 1.0029
Directory 2752985 2425373 2408025 0.8810 1.0072
Binary 287988 233660 229712 0.8113 1.0172
gimp-2.6.7
Produced RPM: gimp-2.6.7-2.fc12.armv5tel.rpm
Directories and files: 206 directories, 1204 files
Binary File 1: usr/bin/gimp-2.6
Binary File 2: usr/bin/gimp-console-2.6 w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 12423104 12431184 12350600 1.0006 1.0065
Directory 45780103 43891439 43730427 0.9587 1.0037
Binary 1 4284848 3450936 3371440 0.8054 1.0236
Binary 2 2131228 1688860 1656092 0.7924 1.0198
abiword-2.8.1
Produced RPM: libabiword-2.8.1-1.fc12.armv5tel.rpm
Directories and files: 39 directories, 617 files
Binary File: usr/lib/libabiword-2.8 w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 5561088 4779800 4742828 0.8595 1.0078
Directory 21295155 17055836 16987340 0.8009 1.0040
Binary 5806908 3450936 3371440 0.5943 1.0236
tar-1.22
Produced RPM: tar-1.22-8.fc12.armv5tel.rpm
Directories and files: 79 directories, 49 files
Binary File: bin/tar w/o Thumb THUMB THUMB2 THUMB / NON-THUMB THUMB / THUMB2
RPM 744340 742784 742180 0.9979 1.0008
Directory 2737195 2681159 2675975 0.9795 1.0019
Binary 251844 195808 190624 0.7775 1.0272
cpio-2.10
Produced RPM: cpio-2.10-5.fc12.armv5tel.rpm
Directories and files: 49 directories, 30 files
Binary File: bin/cpio w/o Thumb THUMB THUMB / NON-THUMB
RPM 189908 189276 0.9967
Directory 842194 816194 0.9691
Binary 117064 91064 0.7779
gzip-1.3.12
Produced RPM: gzip-1.3.12-15.fc12.armv5tel.rpm
Directories and files: 9 directories, 33 files
Binary File: bin/gzip w/o Thumb THUMB THUMB / NON-THUMB
RPM 116560 115736 0.9929
Directory 263922 252086 0.9551
Binary 61708 49872 0.8082
bzip2-1.0.5
Produced RPM: bzip2-1.0.5-6.fc12.armv5tel.rpm
Directories and files: 7 directories, 21 files
Binary File: /usr/bin/bzip2 w/o Thumb THUMB THUMB / NON-THUMB
RPM 49476 49232 0.9951
Directory 109233 103449 0.9470
Binary 33024 28076 0.8502
In average, THUMB reduced the sizes about
2.24% for *.rpm files,
7.67% for extracted directories, and
22.16% for executables, compared to NON-THUMB.
While it might save some disk space for executable files, it doesn't make a big different for rpm packages since rpm has it's own compressing mechanism. In average, THUMB produced files that are about 0.24% for *.rpm files,
0.45% for extracted directories, and
1.86% for executables, greater than THUMB2.
I noticed that THUMB produces files that are almost as small as THUMB2's products.
Project Details
To be added.
Project News
October 8th, 2010 - Project started
October 14th, 2010 - Major project page update with more information.
Resources
ARM Architecture - http://en.wikipedia.org/wiki/ARM_architecture#Thumb
Introduction to ARM thumb - http://www.eetimes.com/discussion/other/4024632/Introduction-to-ARM-thumb