Повышение производительности типа DATE в VBA Outlook 2007 - PullRequest
0 голосов
/ 07 декабря 2010

Я совершенно новичок в этой области и даже В.Б. Текущая производительность одного из моих сценариев действительно плохая. Я не знаю, как профилировать это. Поэтому я просто использую 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» на «Date_POINTER» или «Date_REF», чтобы избежать создания копии. Я не знаю, возможно ли это. Я также не имею ни малейшего представления о том, как улучшить производительность этой инструкции сравнения.

Мне также нужно знать, как правильно его профилировать. На всякий случай я смотрю на совершенно не относящееся к делу место.

1 Ответ

0 голосов
/ 12 декабря 2010

Наконец, я решил использовать CLng (expr) для преобразования 'Date' в 'Long' и сохранения / сравнения с этим значением. Это все еще медленно, но не так медленно.

...