Улучшение производительности типа DATE в VBA Outlook 2007
Я совершенно новичок в этой области и даже VB. Текущая производительность одного из моих сценариев действительно плохая. Я не знаю, как профилировать это. Поэтому я просто использую Shift+F8, чтобы "перешагнуть" инструкции одну за другой, чтобы увидеть, где они замерзли. Тогда оказывается две следующие инструкции:
//This compare instruction
If mail.SentOn < eCase.firstAppearance Then
eCase.firstAppearance = mail.SentOn
End If
//And this assignment instruction in another place
eCase.firstAppearance = mail.SentOn
LEGEND: 'mail' является экземпляром 'MailItem', а 'eCase' является экземпляром открытого класса со следующим членом:
Public firstAppearance As Date
ИМХО, может быть, мне нужно заменить "Дата" на "Date_POINTER" или "Date_REF", чтобы избежать создания копии. Я не знаю, возможно ли это. Я также не имею ни малейшего представления о том, как улучшить производительность этой инструкции сравнения.
Мне также нужно знать, как правильно его профилировать. На всякий случай я смотрю на совершенно не относящееся к делу место.
1 ответ
Наконец, я решил использовать CLng(expr) для преобразования "Date" в "Long" и сохранения / сравнения с этим значением. Это все еще медленно, но не так медленно.