[g-a-devel] At-spi2-atk performance tests



Hi everyone!

During the last month I've been testing on at-spi2-atk to determine whether this commit (http://git.gnome.org/browse/at-spi2-atk/commit/?id=d0f7dd49eebedc8c3993a116411f5a8320965968) had marked a change in performance and how much.

Below I explain a bit what I have done:

- I have installed jhbuild and compiled all the necessary packages.
- I have created 2 branches to make tests on them. One just before the commit and another one just after. - I have researched what tools could be used to measure performance and among all that I have found I'm left with sysprof (to measure the cpu time) and valgrind (to measure memory consumption). - I have researched what applications would be the best to use in tests. Browsing the related bugs (http://git.gnome.org/browse/at-spi2-atk/commit/?id=d0f7dd49eebedc8c3993a116411f5a8320965968, https://bugzilla.gnome.org/show_bug.cgi?id=577098, https://bugzilla.gnome.org/show_bug.cgi?id=419383) and after a first attempt with several apps, I am left with nautilus and rhythmbox. - I have created a few bash scripts to automate and standardize the tests (creation, selection and compilation of the branches, tool selection, etc.). Scripts don't work completely automated and there is an option that I had to comment because it doesn't work fine (I'm sorry, but I'm not a bash expert :( ). But still, they save a lot of time and work.
- I have ran these scripts and saved the results in their directories.
- With these results I have produced a report with LibreOffice Calc and several graphs accompanying it (in order to understand it better).

Note: attached to this email is a package with all the work.

I would also comment that the results of the tests have been quite positive. It has gained in performance in both CPU time and memory consumption.

Attached to the spreadsheet and graphics, it is another plain text report commenting a bit the spreadsheet data (at first sight it can be a bit difficult to understand them). Even if you want more info than is reflected in the spreadsheet/text, you can open the tests output files with sysprof tool or a text editor and get it. I. e., sysprof output files have info structured by levels; you can click on an app and see the consumption by function and so on.

By the end, to comment that I'm still working on it. Right now I'm doing the same tests on the main branch and on the same but without the changes introduced by the commit, to see if the performance difference is better or worse with the recent changes. Also it is possible incorporate some additional tool. You can see the progress in the scripts (I ship the latest version I'm working on), but still take a while to have the results (tests with these tools are very slow).

That's all for now. If you have any questions, please do not hesitate to ask.

Regards,

                    Alejo Pacín.





Attachment: performance_v2_1.tar.gz
Description: GNU Zip compressed data

At-spi2-atk Performance Report											
											
At-spi2-atk performance before/after commit with id d0f7dd49eebedc8c3993a116411f5a8320965968 											
											
Note:											
Nautilus was ran over /usr/bin (about 3000 items).											
Rhythmbox was ran over a big library (about 2000 items).											
											
	Sysprof										
											
		Nautilus									
											
		% CPU	Acc. Disable	Acc. Enable	Acc. Enable + Orca	Diff. AE-AD (%)	Diff. AEO-AD (%)	Diff. AEO-AE (%)			
		Before	12.58		24.39		26.56			11.81		13.98			2.17			
		After	12.14		20.18		24.90			8.04		12.76			4.72			
		Diff	-0.44		-4.21		-1.66			-3.77		-1.22			2.55			
											
		Rhythmbox									
											
		% CPU	Acc. Disable	Acc. Enable	Acc. Enable + Orca	Diff. AE-AD (%)	Diff. AEO-AD (%)	Diff. AEO-AE (%)			
		Before	2.23		39.83		37.51			37.60		35.28			-2.32			
		After	2.01		18.36		36.07			16.35		34.06			19.15			
		Diff	-0.22		-21.47		-1.44			-21.25		-1.22			21.47			
											
	Valgrind										
											
		Nautilus									
											
		B Mem	Acc. Disable	Acc. Enable	Acc. Enable + Orca	Diff. AE-AD (B)	Diff. AE-AD (%)	Diff. AEO-AD (B)	Diff. AEO-AD (%)	Diff. AEO-AE (B)	Diff. AEO-AE (%)
		Before	89,221,533	221,826,210	238,803,972		132,604,677	148.62		149,582,439		167.65			16,977,762		7.11
		After	115,010,219	166,093,059	237,429,630		51,082,840	44.42		122,419,411		106.44			71,336,571		30.05
		Diff	25,788,686	-55,733,151	-1,374,342		-81,521,837	-104.21		-27,163,028		-61.21			54,358,809		22.94
											
		Rhythmbox									
											
		B Mem	Acc. Disable	Acc. Enable	Acc. Enable + Orca	Diff. AE-AD (B)	Diff. AE-AD (%)	Diff. AEO-AD (B)	Diff. AEO-AD (%)	Diff. AEO-AE (B)	Diff. AEO-AE (%)
		Before	131,817,321	358,606,548	364,267,915		226,789,227	172.05		232,450,594		176.34			5,661,367		1.55
		After	125,044,945	187,062,126	359,069,303		62,017,181	49.60		234,024,358		187.15			172,007,177		47.90
		Diff	-6,772,376	-171,544,422	-5,198,612		-164,772,046	-122.45		1,573,764		10.81			166,345,810		46.35

- Explanation:

The previous data are organized by tool/app/commit-time/accessibility.

Sysprof data are expressed in percentage of CPU time.
  Rows:
    Results before the commit.
    Results after the commit.
    Differences between the previous rows.
  Columns:
    Results wit accessibility disable.
    Results wit accessibility enable.
    Results wit accessibility enable and Orca running.
    Differences between the 2nd and the 1st column.
    Differences between the 3rd and the 1st column.
    Differences between the 3nd and the 2nd column.

Valgrind data are expressed in bytes of consumed memory.
  Rows:
  The same as sysprof.
  Colums:
    Results wit accessibility disable.
    Results wit accessibility enable.
    Results wit accessibility enable and Orca running.
    Differences between the 2nd and the 1st column.
    The same as the previous column but expressed in percentage (2nd - 1st / 1st).
    Differences between the 3rd and the 1st column.
    The same as the previous column but expressed in percentage (3rd - 1st / 1st).
    Differences between the 3nd and the 2nd column.
    The same as the previous column but expressed in percentage (3rd - 2nd / 2nd).


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]