Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 |

 

  Вопрос: AgentFire- обратись к дортору неадекват Добавлено: 05.02.11 21:25  

Автор вопроса:  udn79

Ответить

  Ответы Всего ответов: 75  

Номер ответа: 46
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #46 Добавлено: 06.02.11 16:53
Я даже не удивлюсь если в одних Java имплементациях так, а в других не так :)

В дотнете == сравнивает по ссылкам, но если переопределен оператор сравнения, то тогда включается другая логика сравнения.
Ожидаемое поведение - когда Object.Equals дает те же результаты что и ==

Ответить

Номер ответа: 47
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #47
Добавлено: 06.02.11 16:56
гыгы угу

Ответить

Номер ответа: 48
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #48
Добавлено: 06.02.11 20:08
udn79, надень каску уважаемый.
Ты щас наступаешь на очень старые и злые грабли

+1 :)

Ответить

Номер ответа: 49
Автор ответа:
 udn79



Вопросов: 2
Ответов: 95
 Профиль | | #49 Добавлено: 07.02.11 18:17
Да еще, примеры нужно приводить по прямому назначению, например:
  1.  
  2.     Sub Main()
  3.         Dim ms As Single
  4.         Dim n As Long
  5.         Dim ret As Integer
  6.  
  7.         Dim mas(1000000) As String
  8.         For n = 0 To UBound(mas)
  9.             mas(n) = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  10.         Next
  11.         ms = Timer
  12.         For n = 0 To UBound(mas)
  13.             ret = mas(n).CompareTo(String.Empty)
  14.         Next
  15.         Console.WriteLine("String.Empty: " & (Timer - ms))
  16.         ms = Timer
  17.         For n = 0 To UBound(mas)
  18.             ret = mas(n).CompareTo("")
  19.         Next
  20.         Console.WriteLine("          """": " & Timer - ms)
  21.         Console.ReadKey()
  22.     End Sub



результат:

String.Empty: 0,265625
          "": 0,171875

Ответить

Номер ответа: 50
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #50 Добавлено: 08.02.11 14:24
Странно что спец по дизассемблированию не знает что такое погрешность и использует результаты только одного измерения.

Вот немного модифицированый код.

  1.     Sub Main()
  2.         Dim ms As Double
  3.         Dim testStart As Double
  4.         Dim n As Integer
  5.         Dim ret As Integer
  6.  
  7.         Const ITERATIONS_COUNT As Integer = 20
  8.  
  9.         Dim mas(1000000) As String
  10.  
  11.         For n = 0 To UBound(mas)
  12.             mas(n) = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  13.         Next
  14.  
  15.  
  16.         testStart = Timer
  17.         For i = 0 To ITERATIONS_COUNT
  18.             ms = Timer
  19.             For n = 0 To UBound(mas)
  20.                 ret = mas(n).CompareTo(String.Empty)
  21.             Next
  22.             Console.WriteLine("String.Empty: " & (Timer - ms))
  23.         Next
  24.         Console.WriteLine("String.Empty avg: " & (Timer - testStart) / ITERATIONS_COUNT)
  25.  
  26.  
  27.         testStart = Timer
  28.         For i = 0 To ITERATIONS_COUNT
  29.             ms = Timer
  30.  
  31.             For n = 0 To UBound(mas)
  32.                 ret = mas(n).CompareTo("")
  33.             Next
  34.             Console.WriteLine("          """": " & (Timer - ms))
  35.         Next
  36.         Console.WriteLine("        avg  """": " & (Timer - testStart) / ITERATIONS_COUNT)
  37.  
  38.         Console.ReadLine()
  39.  
  40.     End Sub


Результат (конфигураци и условия запуска аналогичные тем которые были в моем первом тесте)
  1. String.Empty: 0.128007300001627
  2. String.Empty: 0.119006900000386
  3. String.Empty: 0.114006499999959
  4. String.Empty: 0.119006799999624
  5. String.Empty: 0.114006499999959
  6. String.Empty: 0.108006099995691
  7. String.Empty: 0.110006300004898
  8. String.Empty: 0.112006399998791
  9. String.Empty: 0.107006099999126
  10. String.Empty: 0.109006200000294
  11. String.Empty: 0.118006800003059
  12. String.Empty: 0.109006200000294
  13. String.Empty: 0.111006399994949
  14. String.Empty: 0.109006200000294
  15. String.Empty: 0.112006400006067
  16. String.Empty: 0.10900629999378
  17. String.Empty: 0.108006199996453
  18. String.Empty: 0.109006200000294
  19. String.Empty: 0.110006300004898
  20. String.Empty: 0.113006499996118
  21. String.Empty: 0.114006499999959
  22. String.Empty avg: 0.118356769999809
  23.           "": 0.118006800003059
  24.           "": 0.117006599997694
  25.           "": 0.11600670000189
  26.           "": 0.113006400002632
  27.           "": 0.121006999994279
  28.           "": 0.112006399998791
  29.           "": 0.109006200000294
  30.           "": 0.111006300001463
  31.           "": 0.108006199996453
  32.           "": 0.109006200000294
  33.           "": 0.118006800003059
  34.           "": 0.113006500003394
  35.           "": 0.109006200000294
  36.           "": 0.10900629999378
  37.           "": 0.110006300004898
  38.           "": 0.112006399998791
  39.           "": 0.109006200000294
  40.           "": 0.110006299997622
  41.           "": 0.130007499996282
  42.           "": 0.125007100003131
  43.           "": 0.118006799995783
  44.         avg  "": 0.120056865000151


Средняя разница около 1% вполне укалдывается в погрешность.

Вопросы?

Ответить

Номер ответа: 51
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #51 Добавлено: 08.02.11 14:29
По поводу оригинального куска кода.
У меня выдаются такие результаты:

  1. String.Empty: 0.129465749996598
  2.           "": 0.107565600002999


Если же первым запускать тест с "", а вторым с String.Empty, получаем уже совсе другой результат:
  1.           "": 0.130378750000091
  2. String.Empty: 0.119573249998211


И собственно в моем модифицированом примере тоже хорошо видно, что самы первый проход выполняется несколько дольше чем остальные в среднем. Такое поведение объясняется принципами работы CLR, JIT, и менеджера памяти .NET и Windows

Ответить

Номер ответа: 52
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #52 Добавлено: 09.02.11 17:30
Мда, интересно...
Ну а тема, собственно, о чем? Какое отношение заголовок имеет к контенту?

Ответить

Номер ответа: 53
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #53 Добавлено: 09.02.11 18:56
Топик-стартер имеет определенные претензии к участнику форума, упомянутому в названии темы.
Бенчмарки к этому вопросу никакого отношения не имеют, использутся исключительно для указания на некомпетентность топик-стартера в технических вопросах. (кэп)

Ответить

Номер ответа: 54
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #54
Добавлено: 09.02.11 20:47
Да уж; нужен ИИ скрипт который будет менять тему в зависимости от реального контента с хохмами какими-нибудь

Ответить

Номер ответа: 55
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #55 Добавлено: 09.02.11 21:12
-_-

Ответить

Номер ответа: 56
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #56 Добавлено: 10.02.11 13:49
Ну, странности участника форума, упомянутого в названии темы, были оговорены еще в те времена когда он появлялся на форуме под ником mikityak. Какой смысл создавать отдельную тему, да еще с какими то бенчами... Видимо я все же что то упустил...

Ответить

Номер ответа: 57
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #57
Добавлено: 10.02.11 14:19
mikityak?! не может быть, тот был действительно странным, а Noviks - оч адекватный чел (раздвоение личности?) =)

Ответить

Номер ответа: 58
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #58 Добавлено: 10.02.11 14:43
я не mikityak

Ответить

Номер ответа: 59
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #59 Добавлено: 10.02.11 15:18
Ну, Noviks, mikityak, какая разница? Может я и попутал чего, но не принципиально.

Ответить

Номер ответа: 60
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #60 Добавлено: 10.02.11 17:57
Странно, поглядел по форуму старые записи. Похоже AgentFire и вправду не mikityak. Хотя уверенно сказать нельзя.
Morpheus, верно, AgentFire это Noviks, но с чего ты взял что Noviks это не mikityak? Кто даст гарантии?
Ято за приколы такие, менять имена. Полфорума уже переименовалось...

Ответить

Страница: 1 | 2 | 3 | 4 | 5 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам