Reorder member variables to reduce memory usage.

Review Request #123390 - Created April 16, 2015 and submitted

Information
Volker Krause
kwidgetsaddons
master
51f5185...
Reviewers
kdeframeworks
cfeck
Saves 8 byte in all cases, on 64bit systems.
Used bytes: 37/48 (77.08%)
Used bits: 290/384 (75.52%)
Optimal size: 40 bytes (-8 bytes, 16.67%)
class FormLayoutWidgetItem // location: /k/kde5/src/kwidgetsaddons/src/kcolumnresizer.cpp:30
{
    inherits QWidgetItem ; // member offset: 0, size: 24, alignment: 8
    int m_width; // member offset: 24, size: 4, alignment: 4
    // 4 byte(s) padding
    QFormLayout* m_formLayout; // member offset: 32, size: 8, alignment: 8
    ItemRole m_itemRole; // member offset: 40, size: 4 (needed: 2 bits), alignment: 4
    // 4 byte(s) padding
}; // size: 48, alignment: 8

Used bytes: 82/96 (85.42%)
Used bits: 642/768 (83.59%)
Optimal size: 88 bytes (-8 bytes, 8.333%)
class KDateTable::KDateTablePrivate // location: /k/kde5/src/kwidgetsaddons/src/kdatetable.cpp:35
{
    KDateTable* q; // member offset: 0, size: 8, alignment: 8
    int fontsize; // member offset: 8, size: 4, alignment: 4
    // 4 byte(s) padding
    QDate m_date; // member offset: 16, size: 8, alignment: 8
    int m_weekDayFirstOfMonth; // member offset: 24, size: 4, alignment: 4
    int m_numDaysThisMonth; // member offset: 28, size: 4, alignment: 4
    QRectF m_maxCell; // member offset: 32, size: 32, alignment: 8
    int m_numWeekRows; // member offset: 64, size: 4, alignment: 4
    int m_numDayColumns; // member offset: 68, size: 4, alignment: 4
    bool m_popupMenuEnabled; // member offset: 72, size: 1 (needed: 1 bits), alignment: 1
    bool m_useCustomColors; // member offset: 73, size: 1 (needed: 1 bits), alignment: 1
    // 6 byte(s) padding
    QHash<int, KDateTable::KDateTablePrivate::DatePaintingMode> m_customPaintingModes; // member offset: 80, size: 8, alignment: 8
    int m_hoveredPos; // member offset: 88, size: 4, alignment: 4
    // 4 byte(s) padding
}; // size: 96, alignment: 8

Used bytes: 189/200 (94.5%)
Used bits: 1506/1600 (94.12%)
Optimal size: 192 bytes (-8 bytes, 4%)
class KFontChooser::Private // location: /k/kde5/src/kwidgetsaddons/src/kfontchooser.cpp:79
{
    KFontChooser* q; // member offset: 0, size: 8, alignment: 8
    QPalette m_palette; // member offset: 8, size: 16, alignment: 8
    bool signalsAllowed:1; // member offset: 24, size: 1 (needed: 1 bits), alignment: 1, bit offset: 7
    bool usingFixed:1; // member offset: 24, size: 1 (needed: 1 bits), alignment: 1, bit offset: 6
    // 7 byte(s) padding
    QDoubleSpinBox* sizeOfFont; // member offset: 32, size: 8, alignment: 8
    QTextEdit* sampleEdit; // member offset: 40, size: 8, alignment: 8
    QLabel* familyLabel; // member offset: 48, size: 8, alignment: 8
    QLabel* styleLabel; // member offset: 56, size: 8, alignment: 8
    QCheckBox* familyCheckbox; // member offset: 64, size: 8, alignment: 8
    QCheckBox* styleCheckbox; // member offset: 72, size: 8, alignment: 8
    QCheckBox* sizeCheckbox; // member offset: 80, size: 8, alignment: 8
    QLabel* sizeLabel; // member offset: 88, size: 8, alignment: 8
    QListWidget* familyListBox; // member offset: 96, size: 8, alignment: 8
    QListWidget* styleListBox; // member offset: 104, size: 8, alignment: 8
    QListWidget* sizeListBox; // member offset: 112, size: 8, alignment: 8
    QCheckBox* sizeIsRelativeCheckBox; // member offset: 120, size: 8, alignment: 8
    QFont selFont; // member offset: 128, size: 16, alignment: 8
    QString selectedStyle; // member offset: 144, size: 8, alignment: 8
    qreal selectedSize; // member offset: 152, size: 8, alignment: 8
    int customSizeRow; // member offset: 160, size: 4, alignment: 4
    // 4 byte(s) padding
    QString standardSizeAtCustom; // member offset: 168, size: 8, alignment: 8
    QHash<QString, QString> qtFamilies; // member offset: 176, size: 8, alignment: 8
    QHash<QString, QString> qtStyles; // member offset: 184, size: 8, alignment: 8
    QHash<QString, QString> styleIDs; // member offset: 192, size: 8, alignment: 8
}; // size: 200, alignment: 8

Used bytes: 25/40 (62.5%)
Used bits: 173/320 (54.06%)
Optimal size: 32 bytes (-8 bytes, 20%)
class KCapacityBar::Private // location: /k/kde5/src/kwidgetsaddons/src/kcapacitybar.cpp:43
{
    int value; // member offset: 0, size: 4, alignment: 4
    // 4 byte(s) padding
    QString text; // member offset: 8, size: 8, alignment: 8
    bool fillFullBlocks; // member offset: 16, size: 1 (needed: 1 bits), alignment: 1
    bool continuous; // member offset: 17, size: 1 (needed: 1 bits), alignment: 1
    // 2 byte(s) padding
    int barHeight; // member offset: 20, size: 4, alignment: 4
    Alignment horizontalTextAlignment; // member offset: 24, size: 4, alignment: 4
    ControlElement ce_capacityBar; // member offset: 28, size: 4 (needed: 10 bits), alignment: 4
    DrawTextMode drawTextMode; // member offset: 32, size: 4 (needed: 1 bits), alignment: 4
    // 4 byte(s) padding
}; // size: 40, alignment: 8

Used bytes: 176/184 (95.65%)
Used bits: 1408/1472 (95.65%)
Optimal size: 176 bytes (-8 bytes, 4.348%)
class KPasswordDialog::KPasswordDialogPrivate // location: /k/kde5/src/kwidgetsaddons/src/kpassworddialog.cpp:36
{
    KPasswordDialog* q; // member offset: 0, size: 8, alignment: 8
    KPasswordDialogFlags m_flags; // member offset: 8, size: 4, alignment: 4
    // 4 byte(s) padding
    Ui_KPasswordDialog ui; // member offset: 16, size: 136, alignment: 8
    QMap<QString, QString> knownLogins; // member offset: 152, size: 8, alignment: 8
    QComboBox* userEditCombo; // member offset: 160, size: 8, alignment: 8
    QLabel* pixmapLabel; // member offset: 168, size: 8, alignment: 8
    unsigned int commentRow; // member offset: 176, size: 4, alignment: 4
    // 4 byte(s) padding
}; // size: 184, alignment: 8

Used bytes: 55/72 (76.39%)
Used bits: 420/576 (72.92%)
Optimal size: 64 bytes (-8 bytes, 11.11%)
class KRatingPainter::Private // location: /k/kde5/src/kwidgetsaddons/src/kratingpainter.cpp:30
{
    int maxRating; // member offset: 0, size: 4, alignment: 4
    // 4 byte(s) padding
    QIcon icon; // member offset: 8, size: 8, alignment: 8
    bool isEnabled; // member offset: 16, size: 1 (needed: 1 bits), alignment: 1
    bool bHalfSteps; // member offset: 17, size: 1 (needed: 1 bits), alignment: 1
    // 2 byte(s) padding
    Alignment alignment; // member offset: 20, size: 4, alignment: 4
    LayoutDirection direction; // member offset: 24, size: 4 (needed: 2 bits), alignment: 4
    // 4 byte(s) padding
    QPixmap customPixmap; // member offset: 32, size: 32, alignment: 8
    int spacing; // member offset: 64, size: 4, alignment: 4
    // 4 byte(s) padding
}; // size: 72, alignment: 8
Christoph Feck
Laurent Montel
Volker Krause
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit 70e730bf57a5a47e635f8ed118ce04470649bb94 by Volker Krause to branch master.
Loading...