This is a multi-part message in MIME format.
--------------030106030306060301020605
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

Hi,

I want to survey the Ruby interpreter usage.

If you have

  - a real application on Ruby 1.9 trunk
    if that application has a performance issue, it is welcome.
  - the build environment
  - time

please cooperate me to survey the CFUNC usage.

Procedure:
  (1) Check out ruby trunk
      $ svn co http://svn.ruby-lang.org/repos/trunk
  (2) Apply a patch which is attached to this mail
  (3) Build ruby interpter and  install it
  (4) Run application on the interpreter
      Ruby prints the results into STDERR at the end of ruby process.

      $ ruby [application] 2> result

  (5) Send me the result with
        - your environment (ruby -v)
        - brief description of your application.

      Download-able URL instead of attaching the result is preferable
      because the result will be a huge text file.

  (6) Do not forget to remove (or invalidate) installed Ruby


Result:
The results show the usage of CFUNC.  CFUNC is methods implemented in C.

	<format>
	method_name	[shallow count]	[deep count]
	...
	</format>

[shallow count] means the number of invoking the method named
[method_name] without invoking the other methods (and blocks, and so
on).  [deep count] is the number of invoking which invoke other methods.


result sample (sorted by Excel):
http://www.atdot.net/sp/view/fmjbal
application: rdoc (build process)
environment: ruby 1.9.3dev (2010-10-14) [i686-linux]


Purpose:

To tune the VM.  I can find out which CFUNC method / what kind of
methods should be faster.


Thank you for.

Regards,
Koichi

----
Japanese (にほんご):

 CFUNC がどんな感じで使われてるか知りたいので、パッチあてて実行して、結
果を送って下さるとります。結果は、プロセセ時に膝ラ]え
ます(正確には、スレッドが回収されるときにスレッド後のに蓮法

窺のリアルアプリケーションってどれくらいあるんだろ。

-- 
// SASADA Koichi at atdot dot net

--------------030106030306060301020605
Content-Type: text/plain;
 name
funcsurvey.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename
funcsurvey.patch" SW5kZXg6IHZtX2NvcmUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHZtX2NvcmUuaAkocmV2aXNp b24gMjk0OTgpDQorKysgdm1fY29yZS5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNDc5LDYgKzQ4 MiwxNSBAQCB0eXBlZGVmIHN0cnVjdCByYl90aHJlYWRfc3RydWN0DQogICAgIGludCBhYm9y dF9vbl9leGNlcHRpb247DQogI2lmZGVmIFVTRV9TSUdBTFRTVEFDSw0KICAgICB2b2lkICph bHRzdGFjazsNCisjZW5kaWYNCisNCisjaWYgQ0ZVTkNfRlJBTUVfVVNBR0VfQ0hFQ0sNCisg ICAgY2hhciAqY2Z1bmNfdXNhZ2VfbWVtbzsNCisgICAgc3RfdGFibGUgKmNmdW5jX3VzYWdl X3RhYmxlOw0KKyAgICBzdHJ1Y3QgY2Z1bmNfdXNhZ2VfcmVjb3JkIHsNCisJc2l6ZV90IHNo YWxsb3c7DQorCXNpemVfdCBkZWVwOw0KKyAgICB9Ow0KICNlbmRpZg0KIH0gcmJfdGhyZWFk X3Q7DQogDQpJbmRleDogY29tcGlsZS5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gY29tcGlsZS5j CShyZXZpc2lvbiAyOTQ5OCkNCisrKyBjb21waWxlLmMJKHdvcmtpbmcgY29weSkNCkBAIC0x ODAwLDYgKzE4MDAsNyBAQCBpbnNuX3NldF9zcGVjaWFsaXplZF9pbnN0cnVjdGlvbihyYl9p c2VxDQogc3RhdGljIGludA0KIGlzZXFfc3BlY2lhbGl6ZWRfaW5zdHJ1Y3Rpb24ocmJfaXNl cV90ICppc2VxLCBJTlNOICppb2JqKQ0KIHsNCisgICAgaWYgKDApIA0KICAgICBpZiAoaW9i ai0+aW5zbl9pZCA9PSBCSU4oc2VuZCkpIHsNCiAJSUQgbWlkID0gU1lNMklEKE9QRVJBTkRf QVQoaW9iaiwgMCkpOw0KIAlpbnQgYXJnYyA9IEZJWDJJTlQoT1BFUkFORF9BVChpb2JqLCAx KSk7DQpJbmRleDogdm0uYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHZtLmMJKHJldmlzaW9uIDI5 NDk4KQ0KKysrIHZtLmMJKHdvcmtpbmcgY29weSkNCkBAIC04LDYgKzgsOCBAQA0KIA0KICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovDQogDQorI2RlZmluZSBDRlVOQ19GUkFNRV9VU0FHRV9DSEVDSyAx DQorDQogI2luY2x1ZGUgInJ1YnkvcnVieS5oIg0KICNpbmNsdWRlICJydWJ5L3ZtLmgiDQog I2luY2x1ZGUgInJ1Ynkvc3QuaCINCkBAIC0xNjg1LDYgKzE2ODcsMTggQEAgcmJfdGhyZWFk X21hcmsodm9pZCAqcHRyKQ0KICAgICBSVUJZX01BUktfTEVBVkUoInRocmVhZCIpOw0KIH0N CiANCitzdGF0aWMgaW50DQorY2Z1bmNfdXNhZ2VfcHJpbnRfaShzdF9kYXRhX3Qga2V5LCBz dF9kYXRhX3QgdmFsLCBzdF9kYXRhX3QgZGF0YSkNCit7DQorICAgIGNoYXIgKm5hbWUgPSAo Y2hhciAqKWtleTsNCisgICAgc3RydWN0IGNmdW5jX3VzYWdlX3JlY29yZCAqcmVjb3JkID0g KHN0cnVjdCBjZnVuY191c2FnZV9yZWNvcmQgKil2YWw7DQorDQorICAgIGZwcmludGYoc3Rk ZXJyLCAiJXNcdCUiIFBSSWRTSVpFICJcdCUiIFBSSWRTSVpFICJcbiIsDQorCSAgICBuYW1l LCByZWNvcmQtPnNoYWxsb3csIHJlY29yZC0+ZGVlcCk7DQorDQorICAgIHJldHVybiBTVF9D T05USU5VRTsNCit9DQorDQogc3RhdGljIHZvaWQNCiB0aHJlYWRfZnJlZSh2b2lkICpwdHIp DQogew0KQEAgLTE3MDgsNiArMTcyMiwxNCBAQCB0aHJlYWRfZnJlZSh2b2lkICpwdHIpDQog CWlmICh0aC0+bG9jYWxfc3RvcmFnZSkgew0KIAkgICAgc3RfZnJlZV90YWJsZSh0aC0+bG9j YWxfc3RvcmFnZSk7DQogCX0NCisNCisjaWYgQ0ZVTkNfRlJBTUVfVVNBR0VfQ0hFQ0sNCisJ aWYgKHRoLT5jZnVuY191c2FnZV90YWJsZSkgew0KKwkgICAgZnByaW50ZihzdGRlcnIsICJD RlVOQ19GUkFNRV9VU0FHRV9DSEVDSzogc3RhcnRcbiIpOw0KKwkgICAgc3RfZm9yZWFjaCh0 aC0+Y2Z1bmNfdXNhZ2VfdGFibGUsIGNmdW5jX3VzYWdlX3ByaW50X2ksIDApOw0KKwkgICAg ZnByaW50ZihzdGRlcnIsICJDRlVOQ19GUkFNRV9VU0FHRV9DSEVDSzogZW5kXG4iKTsNCisJ fQ0KKyNlbmRpZg0KIA0KICNpZiBVU0VfVkFMVUVfQ0FDSEUNCiAJew0KSW5kZXg6IHZtX2lu c25oZWxwZXIuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHZtX2luc25oZWxwZXIuYwkocmV2aXNp b24gMjk0OTgpDQorKysgdm1faW5zbmhlbHBlci5jCSh3b3JraW5nIGNvcHkpDQpAQCAtNjgs NiArNjgsMzEgQEAgdm1fcHVzaF9mcmFtZShyYl90aHJlYWRfdCAqIHRoLCBjb25zdCByYg0K ICAgICBjZnAtPnByb2ZfdGltZV9jaGxkID0gMDsNCiAjZW5kaWYNCiANCisjaWYgQ0ZVTkNf RlJBTUVfVVNBR0VfQ0hFQ0sNCisgICAgaWYgKHRoLT5jZnVuY191c2FnZV9tZW1vKSB7DQor CXN0cnVjdCBjZnVuY191c2FnZV9yZWNvcmQgKnJlY29yZDsNCisJaW50IGZvdW5kID0gMDsN CisNCisJaWYgKHN0X2xvb2t1cCh0aC0+Y2Z1bmNfdXNhZ2VfdGFibGUsIChzdF9kYXRhX3Qp dGgtPmNmdW5jX3VzYWdlX21lbW8sIChzdF9kYXRhX3QgKikmcmVjb3JkKSkgew0KKwkgICAg Zm91bmQgPSAxOw0KKwl9DQorCWVsc2Ugew0KKwkgICAgcmVjb3JkID0gbWFsbG9jKHNpemVv ZihzdHJ1Y3QgY2Z1bmNfdXNhZ2VfcmVjb3JkKSk7DQorCSAgICByZWNvcmQtPnNoYWxsb3cg PSAwOw0KKwkgICAgcmVjb3JkLT5kZWVwID0gMDsNCisJfQ0KKw0KKwlyZWNvcmQtPmRlZXAr KzsNCisNCisJc3RfaW5zZXJ0KHRoLT5jZnVuY191c2FnZV90YWJsZSwgKHN0X2RhdGFfdCl0 aC0+Y2Z1bmNfdXNhZ2VfbWVtbywgKHN0X2RhdGFfdClyZWNvcmQpOw0KKw0KKwlpZiAoZm91 bmQpIHsNCisJICAgIGZyZWUodGgtPmNmdW5jX3VzYWdlX21lbW8pOw0KKwl9DQorCXRoLT5j ZnVuY191c2FnZV9tZW1vID0gMDsNCisgICAgfQ0KKyNlbmRpZg0KKyAgICANCiAgICAgaWYg KFZNREVCVUcgPT0gMikgew0KIAlTRFIoKTsNCiAgICAgfQ0KQEAgLTM5OSw4ICs0MjQsNTAg QEAgdm1fY2FsbF9jZnVuYyhyYl90aHJlYWRfdCAqdGgsIHJiX2NvbnRybw0KICAgICBjZnAt Pm1lID0gbWU7DQogICAgIHJlZ19jZnAtPnNwIC09IG51bSArIDE7DQogDQorI2lmIENGVU5D X0ZSQU1FX1VTQUdFX0NIRUNLDQorICAgIHsNCisJVkFMVUUga2xhc3NuYW1lID0gcmJfbW9k X25hbWUobWUtPmtsYXNzKTsNCisJdGgtPmNmdW5jX3VzYWdlX21lbW8gPSBtYWxsb2MoMHgy MCk7DQorCXNucHJpbnRmKHRoLT5jZnVuY191c2FnZV9tZW1vLCAweDIwIC0gMSwgIiVzIyVz IiwNCisJCSBSVEVTVChrbGFzc25hbWUpID8gUlNUUklOR19QVFIoa2xhc3NuYW1lKSA6ICI/ PyIsDQorCQkgcmJfaWQybmFtZShtZS0+Y2FsbGVkX2lkKSk7DQorCXRoLT5jZnVuY191c2Fn ZV9tZW1vWzB4MjAtMV0gPSAwOw0KKw0KKwlpZiAoIXRoLT5jZnVuY191c2FnZV90YWJsZSkg ew0KKwkgICAgdGgtPmNmdW5jX3VzYWdlX3RhYmxlID0gc3RfaW5pdF9zdHJ0YWJsZSgpOw0K Kwl9DQorICAgIH0NCisjZW5kaWYNCisNCiAgICAgdmFsID0gY2FsbF9jZnVuYyhkZWYtPmJv ZHkuY2Z1bmMuZnVuYywgcmVjdiwgKGludClkZWYtPmJvZHkuY2Z1bmMuYXJnYywgbnVtLCBy ZWdfY2ZwLT5zcCArIDEpOw0KIA0KKyNpZiBDRlVOQ19GUkFNRV9VU0FHRV9DSEVDSw0KKyAg ICB7DQorCWlmICh0aC0+Y2Z1bmNfdXNhZ2VfbWVtbykgew0KKwkgICAgc3RydWN0IGNmdW5j X3VzYWdlX3JlY29yZCAqcmVjb3JkOw0KKwkgICAgaW50IGZvdW5kID0gMDsNCisNCisJICAg IC8qIGZwcmludGYoc3RkZXJyLCAiPiAlc1xuIiwgdGgtPmNmdW5jX3VzYWdlX21lbW8pOyAq Lw0KKwkgICAgaWYgKHN0X2xvb2t1cCh0aC0+Y2Z1bmNfdXNhZ2VfdGFibGUsIChzdF9kYXRh X3QpdGgtPmNmdW5jX3VzYWdlX21lbW8sIChzdF9kYXRhX3QgKikmcmVjb3JkKSkgew0KKwkJ Zm91bmQgPSAxOw0KKwkgICAgfQ0KKwkgICAgZWxzZSB7DQorCQlyZWNvcmQgPSBtYWxsb2Mo c2l6ZW9mKHN0cnVjdCBjZnVuY191c2FnZV9yZWNvcmQpKTsNCisJCXJlY29yZC0+c2hhbGxv dyA9IDA7DQorCQlyZWNvcmQtPmRlZXAgPSAwOw0KKwkgICAgfQ0KKw0KKwkgICAgcmVjb3Jk LT5zaGFsbG93Kys7DQorDQorCSAgICBzdF9pbnNlcnQodGgtPmNmdW5jX3VzYWdlX3RhYmxl LCAoc3RfZGF0YV90KXRoLT5jZnVuY191c2FnZV9tZW1vLCAoc3RfZGF0YV90KXJlY29yZCk7 DQorDQorCSAgICBpZiAoZm91bmQpIHsNCisJCWZyZWUodGgtPmNmdW5jX3VzYWdlX21lbW8p Ow0KKwkgICAgfQ0KKwkgICAgdGgtPmNmdW5jX3VzYWdlX21lbW8gPSAwOw0KKwl9DQorICAg IH0NCisjZW5kaWYNCiAgICAgaWYgKHJlZ19jZnAgIT0gdGgtPmNmcCArIDEpIHsNCiAJcmJf YnVnKCJjZnAgY29uc2lzdGVuY3kgZXJyb3IgLSBzZW5kIik7DQogICAgIH0NCg--------------030106030306060301020605--