summaryrefslogtreecommitdiffstats
path: root/native_client_sdk/src
diff options
context:
space:
mode:
authorjfb@chromium.org <jfb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 16:34:24 +0000
committerjfb@chromium.org <jfb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 16:34:24 +0000
commit959f0d164366a7c872d9414db738c489bf86021a (patch)
tree6041c77cb3cdf90f4ffd8cb15675888141337224 /native_client_sdk/src
parenta99329d8f691d5dbf8e1ea78cc3a91413a9b3df2 (diff)
downloadchromium_src-959f0d164366a7c872d9414db738c489bf86021a.zip
chromium_src-959f0d164366a7c872d9414db738c489bf86021a.tar.gz
chromium_src-959f0d164366a7c872d9414db738c489bf86021a.tar.bz2
PNaCl doc: Remove TODOs from FAQ, update perf numbers
R= eliben@chromium.org BUG= https://code.google.com/p/nativeclient/issues/detail?id=3634 NOTRY=true (documentation change) Review URL: https://codereview.chromium.org/51783002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231847 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'native_client_sdk/src')
-rw-r--r--native_client_sdk/src/doc/faq.rst70
1 files changed, 38 insertions, 32 deletions
diff --git a/native_client_sdk/src/doc/faq.rst b/native_client_sdk/src/doc/faq.rst
index 67f356c..ee6ee51 100644
--- a/native_client_sdk/src/doc/faq.rst
+++ b/native_client_sdk/src/doc/faq.rst
@@ -63,7 +63,11 @@ Portable Native client further enhances the above:
gains support for new processors and fully uses their capabilities.
.. TODO Expand on the PNaCl performance section in another document, and
-.. link to it here.
+.. link to it here. How does one profile PNaCl code? What are common
+.. causes of slowness? How can code be made faster? What's the best way
+.. to use Pepper's asynchronous APIs? What do I need to know about
+.. threads and inter-thread communications? Can I use SIMD or other
+.. processor-specific instructions? What aboutt he GPU?
For more details, refer to the :doc:`history behind and comparison of
NaCl and PNaCl <nacl-and-pnacl>`.
@@ -91,29 +95,40 @@ When should I use Portable Native Client?
See :doc:`NaCl and PNaCl <nacl-and-pnacl>`. In short: PNaCl works on the
open web whereas NaCl only works on the Chrome Web Store.
-How fast does code run in Native Client?
-----------------------------------------
+How fast does code run in Portable Native Client?
+-------------------------------------------------
-Fast! Benchmarks on x86-32 measured an average performance overhead of
-less than 5% compared to native C/C++ on applications such as Quake,
-bzip2, and Google Earth. For details of those benchmarks, see `Native
-Client: A Sandbox for Portable, Untrusted x86 Code
-<https://src.chromium.org/viewvc/native_client/data/docs_tarball/nacl/googleclient/native_client/documentation/nacl_paper.pdf>`_
-(PDF).
+Fast! The SPEC2k benchmarks (C, C++ and floating-point benchmarks) give
+the following overhead for optimized PNaCl compared to regular optimized
+LLVM:
+
++--------+-----+
+| x86-32 | 15% |
++--------+-----+
+| x86-64 | 20% |
++--------+-----+
+| ARM | 10% |
++--------+-----+
-Benchmarks on x86-64 and ARM measured an average performance overhead of
-less than 5% on ARM and 7% on x86-64; however, benchmark performance was
-bimodal for x86-64, so different use cases are likely to achieve either
-significantly better or significantly worse performance than that
-average. For details, see `Adapting Software Fault Isolation to
-Contemporary CPU Architectures
-<https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_ (PDF).
+Note that benchmark performance is sometimes bimodal, so different use
+cases are likely to achieve better or worse performance than the above
+averages. For example floating-point heavy code usually exhibits much
+lower overheads whereas very branch-heavy code often performs worse.
-.. TODO Update performance numbers.
+For details, see:
+
+* `Adapting Software Fault Isolation to Contemporary CPU Architectures
+ <https://nativeclient.googlecode.com/svn/data/site/NaCl_SFI.pdf>`_
+ (PDF).
+* `Native Client: A Sandbox for Portable, Untrusted x86 Code
+ <https://src.chromium.org/viewvc/native_client/data/docs_tarball/nacl/googleclient/native_client/documentation/nacl_paper.pdf>`_
+ (PDF).
If your code isn't performing as close to native speed as you'd expect,
:doc:`let us know <help>`!
+.. TODO Link to the non-existent performance page! (see above todo).
+
Why use Portable Native Client instead of *<technology X>*?
-----------------------------------------------------------
@@ -151,11 +166,8 @@ develop on ChromeOS with `Crouton
self-hosting a full development environment on Portable Native Client.
Any editor+shell combination should work as well as IDEs like Eclipse,
-Visual Studio with the `Native Client Add-In
-<https://developers.google.com/native-client/dev/devguide/devcycle/vs-addin>`_
-on Windows, or Xcode on Mac OSX.
-
-.. TODO: update link to Visual Studio when ReST-ified.
+Visual Studio with the :doc:`Native Client Add-In
+<devguide/devcycle/vs-addin>` on Windows, or Xcode on Mac OSX.
I'm not familiar with native development tools, can I still use the Native Client SDK?
--------------------------------------------------------------------------------------
@@ -184,10 +196,8 @@ to consider Native Client for standardization.
We consistenly try to document our design and implementation and hope to
standardize Portable Native Client when it gains more traction. A good
-example is our `PNaCl bitcode reference manual
-<http://www.chromium.org/nativeclient/pnacl/bitcode-abi>`_.
-
-.. TODO Update the above bitcode-abi link to a :doc: once 3693 is fixed.
+example is our :doc:`PNaCl bitcode reference manual
+<reference/pnacl-bitcode-abi>`.
What are the supported instruction set architectures?
-----------------------------------------------------
@@ -274,12 +284,8 @@ Yes. Native Client supports `OpenGL ES 2.0
To alert the user regarding their hardware platform's 3D feature set
-before loading a large NaCl application, see `Vetting the driver in
-Javascript
-<https://developers.google.com/native-client/devguide/coding/3D-graphics>`_.
-
-.. TODO Update link to point to the right place in the document once
-.. it's ReST-ified.
+before loading a large NaCl application, see :doc:`Vetting the driver in
+Javascript <devguide/coding/3D-graphics>`.
Some GL extensions are exposed to Native Client applications, see the
`GL ES 2 file