QDateTime - Optimize date() and time() methods
Optimize the performance of date() and time(), resulting in a one-third
improvement, and subsequent improvements in all date/time based
functions. Tested over 1000 iterations of the standard benchmarks, in
msecs per iteration:
Before After
date()/time() 0.3 0.2
setDate()/setTime() 0.9 0.8
daysTo() 0.6 0.4
Note original performance before msecs storage was 0.06.
Change-Id: Ie838e560ddf7129281531dc965af56ac19cce91d
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
parent
e7db02e79e
commit
1da1259c28
|
|
@ -2682,10 +2682,10 @@ void QDateTimePrivate::getDateTime(QDate *date, QTime *time) const
|
|||
{
|
||||
msecsToTime(m_msecs, date, time);
|
||||
|
||||
if (isNullDate())
|
||||
if (date && isNullDate())
|
||||
*date = QDate();
|
||||
|
||||
if (isNullTime())
|
||||
if (time && isNullTime())
|
||||
*time = QTime();
|
||||
}
|
||||
|
||||
|
|
@ -3094,9 +3094,10 @@ bool QDateTime::isValid() const
|
|||
|
||||
QDate QDateTime::date() const
|
||||
{
|
||||
if (d->isNullDate())
|
||||
return QDate();
|
||||
QDate dt;
|
||||
QTime tm;
|
||||
d->getDateTime(&dt, &tm);
|
||||
msecsToTime(d->m_msecs, &dt, 0);
|
||||
return dt;
|
||||
}
|
||||
|
||||
|
|
@ -3108,9 +3109,10 @@ QDate QDateTime::date() const
|
|||
|
||||
QTime QDateTime::time() const
|
||||
{
|
||||
QDate dt;
|
||||
if (d->isNullTime())
|
||||
return QTime();
|
||||
QTime tm;
|
||||
d->getDateTime(&dt, &tm);
|
||||
msecsToTime(d->m_msecs, 0, &tm);
|
||||
return tm;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue