[ruby-list:42894] Re: apt-listbugs: soap4r での悩み
From:
Junichi Uekawa <dancer@...>
Date:
2006-10-17 13:22:19 UTC
List:
ruby-list #42894
こんにちは、
> > SOAP4RのXML <-> Ruby mappingの問題(*3)で、
> > http://dev.ctor.org/soap4r/ticket/224
> > この辺で改善されています。お使いのsoap4rをlatest snapshot tarballもしく
> > は最新gemにupgradeして試してもらうことは可能でしょうか。
>
> soap4r-20061004.tar.gz で確認してみました。確かに600バグレポートを取得
> するのに340MB程度必要だったのが、170MB程度まで半減されました。
しかしながら、まだ結構メモリ消費料が大きい(データ量に対してのメモリ消
費量が10000倍)ため、メモリプロファイラを通してみました。
http://ruby-memory-profiler.googlecode.com/svn/trunk/lib/memory_profiler.rb
を使ってみました。コードに追加したのは下記です:
[22:14:52]dancer64:apt-listbugs> git-diff
index 045bbc9..19e6dba 100755
--- a/apt-listbugs
+++ b/apt-listbugs
@@ -1331,6 +1331,9 @@ when "rss"
}
end
+require 'memory_profiler'
+MemoryProfiler.start
+
exit 0 if pkgnames.size == 0
# creating new packages database
出力は下記でした。まだこの出力の意味については調査できていません。
Top 20
+8252: String (8252)
+2003: Array (2003)
+1016: Class (1016)
+734: Regexp (734)
+176: Hash (176)
+92: Module (92)
+58: Range (58)
+9: Float (9)
+5: REXML::Entity (5)
+4: File (4)
+3: IO (3)
+3: Mutex (3)
+3: Bignum (3)
+3: Object (3)
+2: Thread (2)
+2: Proc (2)
+2: IgnoreBugs (2)
+1: NoMemoryError (1)
+1: Debian::BTS::Parser::Index (1)
+1: REXML::XMLDecl (1)
Top 20
+105802: String (114054)
+23874: Array (25877)
+13639: Debian::Bug (13639)
+13638: Time (13639)
+1655: Hash (1831)
+496: Debian::Deb (496)
+184: Class (1200)
+109: XSD::QName (109)
+105: Regexp (839)
+59: Proc (61)
+28: Module (120)
+25: Float (34)
+12: Range (70)
+6: Debian::Bugs (6)
+5: SOAP::Property (5)
+4: SOAP::Mapping::ArrayFactory_ (4)
+4: SOAP::Mapping::DateTimeFactory_ (4)
+4: SOAP::Mapping::StringFactory_ (4)
+4: SOAP::Mapping::BasetypeFactory_ (4)
+4: Mutex (7)
Top 20
+731: Array (26608)
+689: Hash (2520)
+654: SOAP::SOAPString (654)
+201: String (114255)
+5: Proc (66)
+5: XSD::QName (114)
+4: Thread (6)
+3: SOAP::Property (8)
+2: Net::HTTP (2)
+2: URI::HTTP (2)
+2: XSD::NS (2)
+2: MatchData (3)
+2: Net::BufferedIO (2)
+2: Net::HTTP::Post (2)
+2: TCPSocket (2)
+1: SOAP::EncodingStyle::SOAPHandler (1)
+1: SOAP::SOAPStruct (1)
+1: Regexp (840)
+1: SOAP::StreamHandler::ConnectionData (1)
+1: SOAP::RPC::SOAPMethodRequest (2)
Top 20
+56860: String (171115)
+43301: Array (69909)
+25386: XSD::QName (25500)
+22062: Hash (24582)
+9093: SOAP::SOAPString (9747)
+3060: SOAP::SOAPStruct (3061)
+2758: MatchData (2761)
+2068: SOAP::SOAPArray (2069)
+1624: SOAP::SOAPInt (1624)
+990: SOAP::SOAPNil (990)
+885: XSD::NS (887)
+885: SOAP::Parser::ParseFrame::NodeContainer (885)
+884: SOAP::Parser::ParseFrame (884)
+162: SOAP::EncodingStyle::SOAPHandler::SOAPUnknown (162)
+48: SOAP::SOAPBase64 (48)
+2: SOAP::SOAPFloat (2)
+2: Float (36)
+1: Net::HTTPOK (1)
-4: Thread (2)
-5: Proc (61)
Top 20
+14449: String (185564)
+1067: Debian::BTSSOAP::StringArray (1068)
+893: SOAP::Mapping::Object (893)
+654: Time (14293)
+654: Debian::Bug (14293)
+22: Process::Status (24)
+2: Float (38)
-1: File (4)
-1: SOAP::RPC::SOAPMethodRequest (1)
-1: Regexp (839)
-2750: MatchData (11)
-11003: XSD::QName (14497)
-19889: Hash (4693)
-25881: Array (44028)
Top 20
+127: String (185691)
+16: Process::Status (40)
+8: MatchData (19)
+5: Array (44033)
Top 20
-9: MatchData (10)
-11: Array (44022)
-21: Process::Status (19)
-110: String (185581)
Top 20
+8: Process::Status (27)
-1: Debian::Bugs (5)
-2: MatchData (8)
-23: Time (14270)
-23: Debian::Bug (14270)
-44: Array (43978)
-87: String (185494)
Top 20
+37: String (185531)
+7: MatchData (15)
-3: Process::Status (24)
-13: Time (14257)
-13: Debian::Bug (14257)
-22: Array (43956)
Top 20
-4: Process::Status (20)
-9: Debian::Bug (14248)
-9: Time (14248)
-9: MatchData (6)
-26: Array (43930)
-79: String (185452)
Top 20
+50: String (185502)
+8: MatchData (14)
+1: Process::Status (21)
-6: Time (14242)
-6: Array (43924)
-6: Debian::Bug (14242)
Top 20
+4: Process::Status (25)
+1: String (185503)
-3: MatchData (11)
-8: Time (14234)
-8: Debian::Bug (14234)
-18: Array (43906)
Top 20
+1: File (5)
+1: Viewer::SimpleViewer (1)
-1: Debian::Bugs (4)
-3: Float (35)
-23: Process::Status (2)
-524: Time (13710)
-524: Debian::Bug (13710)
-2856: Hash (1837)
-14388: XSD::QName (109)
-17886: Array (26020)
-70817: String (114686)
上川
--
dancer@{debian.org,netfort.gr.jp} Debian Project