Last Comment Bug 689235 - We need raw data on thread performance
: We need raw data on thread performance
: perf, platform
Product: Core
Classification: Components
Component: General (show other bugs)
: unspecified
: x86 All
: -- normal (vote)
: ---
Assigned To: David Teller [:Yoric] (please use "needinfo")
Depends on:
  Show dependency treegraph
Reported: 2011-09-26 11:39 PDT by David Teller [:Yoric] (please use "needinfo")
Modified: 2011-10-03 03:32 PDT (History)
2 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

Protocol (5.78 KB, text/plain)
2011-09-28 07:17 PDT, David Teller [:Yoric] (please use "needinfo")
no flags Details
Quick-and-dirty build script, in case anyone needs it (1.50 KB, patch)
2011-09-30 05:10 PDT, David Teller [:Yoric] (please use "needinfo")
no flags Details | Diff | Splinter Review

Description David Teller [:Yoric] (please use "needinfo") 2011-09-26 11:39:01 PDT
At start-up, we have sometimes 80+ threads (see bug 611837). Probably not a big issue on desktop platforms, but might be problematic on mobile.

We need some idea of thread-related costs on mobile platforms (and, possibly, at a later stage, other platforms).

In particular, areas of interest are:
- virtual memory allocated at thread creation;
- actual memory allocated at thread creation;
- time spent creating/destroying a thread;
- speedup for I/O tasks.
Comment 1 David Teller [:Yoric] (please use "needinfo") 2011-09-28 07:17:14 PDT
Created attachment 563064 [details]

I have put together a simple cross-platform benchmark. It consists in two tests. 

The first one is CPU-bound: for each number of threads between 1 and 100, given a constant amount of CPU-bound work, spawn p-1 threads, divide the work between the p threads, wait until all threads have finished their work, then proceed. Measure time and memory usage.

The second test is IO-bound. The protocol is similar, but the work consists in reading and writing arbitrary data to/from temporary files.

I attach the protocol.

Results may be found here: .

For comparison, results of same protocol executed on Macintosh may be found here: .
Comment 2 David Teller [:Yoric] (please use "needinfo") 2011-09-28 07:24:46 PDT
Initial exploitation of data: Android seems to handle threads very well. Exploiting the dual core of the Galaxy Tab, both the CPU-bound test and the IO-bound see a 2x speedup when using 2 threads, and doesn't get noticeably worse when we progressively grow to 100 threads. Memory usage is reasonably constant no matter how many threads are used.

I am not sure how to interpret the linear growth of page reclaims.
Comment 3 David Teller [:Yoric] (please use "needinfo") 2011-09-30 05:10:18 PDT
Created attachment 563714 [details] [diff] [review]
Quick-and-dirty build script, in case anyone needs it
Comment 4 David Teller [:Yoric] (please use "needinfo") 2011-10-03 03:32:17 PDT
Measures seem satisfying and sufficient. Closing this bug.

Note You need to log in before you can comment on or make changes to this bug.