Review Request: Patch to reduce C++ memory consumption on x86_64 by using uint instead of size_t

Alexander Dymo alexander.dymo at gmail.com
Sun Feb 14 16:18:40 UTC 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/2917/
-----------------------------------------------------------

Review request for KDevelop.


Summary
-------

This patch uses uint instead of size_t in C++ parser. It also contains some changes in the kdevplatform - some parts of duchain code used uints, some parts - size_t. The patch changes that to uint.


Diffs
-----

  /trunk/extragear/sdk/kdevelop/languages/cpp/cppduchain/declarationbuilder.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/cppduchain/declarationbuilder.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/cppduchain/type_visitor.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/cppduchain/typebuilder.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/cppduchain/typebuilder.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/ast.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/codegenerator.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/codegenerator.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/commentformatter.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/commentformatter.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/commentparser.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/commentparser.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/lexer.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/name_compiler.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/parser.h 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/parser.cpp 1089739 
  /trunk/extragear/sdk/kdevelop/languages/cpp/parser/type_compiler.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/appendedlist.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/codemodel.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/definitions.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/duchain.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/duchainregister.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/duchainregister.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/importers.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/indexedstring.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/instantiationinformation.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/persistentsetmap.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/persistentsymboltable.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/repositories/itemrepository.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/repositories/stringrepository.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/repositories/typerepository.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/types/abstracttype.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/types/typeregister.h 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/types/typeregister.cpp 1089739 
  /trunk/extragear/sdk/kdevplatform/language/duchain/uses.cpp 1089739 

Diff: http://reviewboard.kde.org/r/2917/diff


Testing
-------

Real world effect on 64bit system: parsing Ruby interpreter source code: data from memusage.sh

== Before: 909M peak memory consumption ==
Memory usage summary: heap total: 4948870624288, heap peak: 953681795, stack peak: 95472

== After: 808M peak memory consumption ==
Memory usage summary: heap total: 4948324604564, heap peak: 847761068, stack peak: 95440

All C++ tests still pass after this change.


Thanks,

Alexander





More information about the KDevelop-devel mailing list