|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Пример1 if (a == 1) {код1} else if (a == 2) {код2} else if (a == 3) {код3} Пример2 if (a == 1) {код1} if (a == 2) {код2} if (a == 3) {код3} Какой пример выполнится быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:02 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81Какой пример выполнится быстрее?switch )) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:06 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Если а=1 или 2, то первый, если 3, то пофиг. Надо объяснять почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:06 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Shocker.Prowebber81Какой пример выполнится быстрее?switch ))Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:07 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
if-else по скорости равно switch (в случае если а=1) я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:23 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81if-else по скорости равно switch (в случае если а=1) я правильно понял? Надо IL код открывать. И смотреть там. Думаю, что режим компиляции (debug - release) может повлиять... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 14:47 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81Пример1 if (a == 1) {код1} else if (a == 2) {код2} else if (a == 3) {код3} Пример2 if (a == 1) {код1} if (a == 2) {код2} if (a == 3) {код3} Какой пример выполнится быстрее? Пример2 быстрее, если там стоит ретурн в коде. Копеешное дело. Не стòит на это внимание обращать. Вообще-то это очень зависит от умения программировать, а не по формальным признакам. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 15:01 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
ShSerge Не стòит на это внимание обращать. Вообще-то это очень зависит от умения программировать, а не по формальным признакам. +1 Есть две важные вещи - время процессора и время программиста. Задача позитивного программиста - писать понятный код. Это экономит его время и время тех, кто будет поддреживать его код потом. В редких случаях - время процессора важнее, и тогда надо писать максимально оптимальный код. В большинстве случаев достаточно уметь решать проблему "умножения таблиц" - и никаких проблем с производительностью не возникнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 18:36 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81, "быстрее" в дотнете? ну-ну ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 18:54 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
ShSerge, А не чё что это два разных кода, даже по логике исполнения первый пример. if (a == 1) {код1} else if (a == 2) {код2} else if (a == 3) {код3} это единый блок кода если а==1 код1 исполняется и безусловным переходом вышвыривается за за блок в низ ( что там у нас..) а Пример2 if (a == 1) {код1} if (a == 2) {код2} if (a == 3) {код3} это три блока и если первый исполняется то остальные будит дубасится все равно.. мало того пример 2 подвержен трудно уловимым багам в логике. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 19:17 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
По моему в экзамплах if (a == 1) {код1} else if (a == 2) {код2} else if (a == 3) {код3} и switch(a) case 1: {код1} break; case 2: {код2} break; case 3: {код3} break; по очереди проверяются все условия, пока не дойдем до нужного. После этого выполняется один соответствующий кодовый блок То есть, оба экзампла должны выполняться абсолютно идентично. Я прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 22:02 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Ждем очередного громкого расследования по поводу, что быстрее for или foreach ! Оставайтесь на связи! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 22:10 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Забыл повыеживаться на последок: на самом деле ничто не быстрее - это макароны, и уже с запахом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 22:12 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81То есть, оба экзампла должны выполняться абсолютно идентично. Я прав?D129 сказал умную вещь: нужно смотреть IL-код. Но в VB6 тесты показывали большую скорость case'ов, чем else if. От этого у нас с Шокером остался стереотип :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2014, 22:40 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Решил таки сравнить case и else if под дотнетом. говнокод, я знаю Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 11:30 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Чудеса... D129 написал уже dsit. Вы посмотрите во что превращается код в IL, в частности, как там раскручиются if else, а потом будете сравнивать ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 12:36 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81, Без дизассембля-ции тут никак не обойтись! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 13:16 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
D129Надо IL код открывать. И смотреть там. Блин, я не был первым капитаном. Тоска-пичаль. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2014, 13:18 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
Кому интересно поразбираться, так скажем, опытные образцы: Код VB.NET (Компилятор VB.NET 11.0.50709.17929 из VS 2012 Express .NET 4.5) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
Дизассемблированный код через ILSpy 2.1.0.1603 в виде VB кода Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
Дизассемблированный код в виде IL кода Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234.
Как видно для Switch конструкции есть спец оператор в IL, который оптимально реализует условие Код: c# 1.
А вот If-Then-Else в некую кашу нагенерировалось, довольно неплохо, но проскакивают операции чтения/записи в стек, которые скорее всего и тормозят. Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 13:42 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
AntonariyПод дебаггером результат 16 секунд у elseif против 9 у case, при запуске exe 14 против 12. Elseif по-прежнему немного отстает (на 15%), и в алгоритмах, чувствительных к экономии на спичках, будет все же полезнее. То есть получаетcя что switch под дебагером быстрее чем из exe? Такое разве может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2014, 09:39 |
|
Что быстрее if-if или if-else-if?
|
|||
---|---|---|---|
#18+
webber81AntonariyПод дебаггером результат 16 секунд у elseif против 9 у case, при запуске exe 14 против 12. Elseif по-прежнему немного отстает (на 15%), и в алгоритмах, чувствительных к экономии на спичках, будет все же полезнее. То есть получаетcя что switch под дебагером быстрее чем из exe? Такое разве может быть?Станиславский в треде! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2014, 10:41 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1403289]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 462ms |
0 / 0 |