|
|
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Столкнулся с тем что, данный код с переменной типом int64 работает за 13.74 сек (в простом inc несколько миллионов раз) 1) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 2) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. А если написать вот так, то та же самая операция занимает 3.64 секунды Код: pascal 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. Из за чего такая проблема ? Просады в 3.8 раза Гиф демонстрация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 22:05:02 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Кстати, все оптимизации дебагера включены были, от первого создания проекта. И никак они не влияют на сам проект.. Для тех кто хочет высказать - используй стандартный контейнер вроде TValue или стандартный Variant то придержите при себе такое. Им мечтать и мечтать о тех производительности что у меня есть PHP 7.1.5 - 41.123138 сек SPHP - 3.234138 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 22:14:53 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Выравнивание? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 22:30:10 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикИз за чего такая проблема ? Из-за packed. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 22:39:11 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Выравнивание? Я тоже так подумал, но убрав packed ничего не изменилось. Возможно из за того что Delphi автоматом пакует для int64 такую структуру, для поддержки на 32 битных платформах Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 22:39:37 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Зачем путь замазал? Его уже до этого в гиф-ке все прекрасно рассмотрели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:00:40 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
rgreatЗачем путь замазал? Его уже до этого в гиф-ке все прекрасно рассмотрели. Да замазывал для другого источника =) На гифке было лень, решил не парится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:03:12 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикИз за чего такая проблема ? Просады в 3.8 раза Я проверил на своей виртуалке с XE2. В обоих вариантах ~800 msec. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:05:41 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyВ обоих вариантах ~800 msec С ноликом ошибся, но результат всё равно идентичен. Время ~8 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:09:39 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, асм демонстрацию давай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:09:40 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyНяшикИз за чего такая проблема ? Просады в 3.8 раза Я проверил на своей виртуалке с XE2. В обоих вариантах ~800 msec. Странно что у меня такие проблемы случились.. Возможно архитектура процессора, или ещё чего виновата. Я в ассемблерной отладке зелень конечно. По этому и написал тут... В общем, если это никак не решается для меня, то оставлю как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:11:38 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMНяшик, асм демонстрацию давай. А как её для структуры получить? Для inc то ничего особенного совершенно - двух случаях один и тот же код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:12:23 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикСтранно что у меня такие проблемы случились.. А версия дельфей какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:17:40 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyНяшикСтранно что у меня такие проблемы случились.. А версия дельфей какая? berlin. На всякий случай приведу, что в двух случаях на гифке получается. Вполне, одинаковый код, с учётом того что элемент идёт вторым, то естественно на 1 будет больше его индекс Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:21:20 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, Дело в выравнивании. Причём скорее всего на границе двух линеек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:42:50 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшикberlin На голом проекте разница действительно есть. 3 секунды против 8. Проверил и на берлине и на XE2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2017, 23:53:48 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Как ни удивительно, но такие, на первый взгляд, монструозные конструкции, как Int64Rec могут компилироваться в несколько ассемблерных команд. Если занимаешься скоростным кодингом, стоит с ассеблером разобраться ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 07:32:49 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyНяшикberlin На голом проекте разница действительно есть. 3 секунды против 8. Проверил и на берлине и на XE2. А чему равно esi? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 07:59:05 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUА чему равно esi? SOFT, даже ежу понятно, что ESI в всегда кратно по крайней мере 8 (или 16). И ему же понятно, что - да - дело в выравнивании. И вот в это НяшикЯ тоже так подумал, но убрав packed ничего не изменилось я не верю. (Либо у него в настройках проекта включено выравнивание по байтам.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 09:45:33 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:34:20 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUKazantsev Alexeyпропущено... На голом проекте разница действительно есть. 3 секунды против 8. Проверил и на берлине и на XE2. А чему равно esi? Переменной Код: pascal 1. ... А вот что ниже, мне не совсем понятно. Но в двух случаях одинаково Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:41:09 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикДля тех кто хочет высказать - используй стандартный контейнер вроде TValue или стандартный Variant то придержите при себе такое. Им мечтать и мечтать о тех производительности что у меня есть "Смысла в наших манипуляциях было столько же, сколько в тщательном определении ширины шага у старого мерина, которого ведут на живодерню. " Когда же эти оптимизаторы уймутся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:47:37 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик ... А вот что ниже, мне не совсем понятно. Но в двух случаях одинаково Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. это просто нули ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:48:19 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
schiНяшикДля тех кто хочет высказать - используй стандартный контейнер вроде TValue или стандартный Variant то придержите при себе такое. Им мечтать и мечтать о тех производительности что у меня есть "Смысла в наших манипуляциях было столько же, сколько в тщательном определении ширины шага у старого мерина, которого ведут на живодерню. " Когда же эти оптимизаторы уймутся! Ну вообще - то, он вон чего умеет - за столь короткое время. Притом мой интерпретатор даёт точно такую же скорость при использования (Оно и логично, по опкодом прыгать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:56:35 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
defecatorНяшик... А вот что ниже, мне не совсем понятно. Но в двух случаях одинаково Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. это просто нули Да! Точно. От скрина выше вот что получилось Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 10:59:08 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUА чему равно esi? А он не участвует (XE2): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Вот асм XE2, для которого результаты были одинаковыми (8 сек): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 11:11:17 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшикschiпропущено... "Смысла в наших манипуляциях было столько же, сколько в тщательном определении ширины шага у старого мерина, которого ведут на живодерню. " Когда же эти оптимизаторы уймутся! Ну вообще - то, он вон чего умеет - за столь короткое время. Притом мой интерпретатор даёт точно такую же скорость при использования (Оно и логично, по опкодом прыгать) Я очень извиняюсь, а зачем и кому оно надо - пустой цикл даже за столь короткое время ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:05:10 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Судя по коду Няшика, esi равен $0060d128 Получается смещение 40 в линейке Тогда независимо от варианта инкремента, коллизии линеек нет Тогда в чем дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:35:02 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
schiНяшикпропущено... Ну вообще - то, он вон чего умеет - за столь короткое время. Притом мой интерпретатор даёт точно такую же скорость при использования (Оно и логично, по опкодом прыгать) Я очень извиняюсь, а зачем и кому оно надо - пустой цикл даже за столь короткое время ? Никому, на то это и тесты - показательная вещь, что на это он способен. По крайне мере, о не создаёт структуры по новой - перезагружая основную(Как это делает TValue)... В этом и заключается быстро действие. Я к слову, даже строки сумел оптимизировать так, что бы они по новой не перезаписывались если она уже записана Для каждого типа я создал функцию, которая делает что - то типа Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Как - то странно, но inc работает дольше. По этому использую стандартный PLUS хотя асм кодов больше становится в итоге. А вот и строки Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:36:22 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, Советую менять case на вызов функции из массива Под x86 кейсы работают ещё более менее, если идут по порядку, а под x64 там бинарный поиск. Лишние команды, переходы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:44:37 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Советую менять case на вызов функции из массива Под x86 кейсы работают ещё более менее, если идут по порядку, а под x64 там бинарный поиск. Лишние команды, переходы А разве вызов функции не будет замедлять ? В принципе, вот такие результаты 3.185233 сек. Код: pascal 1. А вот с case 3.519293 сек. Код: pascal 1. Разница вроде в 0.33406 незначительная из 1000000000 раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 12:57:23 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Советую менять case на вызов функции из массива Под x86 кейсы работают ещё более менее, если идут по порядку, а под x64 там бинарный поиск. Лишние команды, переходы Даже придумать не могу, как передать в коллбэк свою же структуру.. И так не получиться Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 13:23:25 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикА как её для структуры получить? Код: pascal 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. Иногда компилятор сам оптимизирует размещение записи в памяти, поэтому и получилось, что с packed что без @TSPHPValue.TInt64 кратное 4. А после изменения структуры оптимизатор уже не смог тебе помочь. Слабо-нервным не смотреть )) Няшик, держи немного изврата - тебе понравится: Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 13:25:39 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMНяшикА как её для структуры получить? Код: pascal 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. Иногда компилятор сам оптимизирует размещение записи в памяти, поэтому и получилось, что с packed что без @TSPHPValue.TInt64 кратное 4. А после изменения структуры оптимизатор уже не смог тебе помочь. Слабо-нервным не смотреть )) Няшик, держи немного изврата - тебе понравится: Код: pascal 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. Как - то пробовал работать с absolute , но получал дикие тормоза.. И вроде бы всё нормально было конечно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 13:28:51 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeM, Всё же, не помогло. выдаёт 12.271936 сек. Код: pascal 1. 2. 3. 4. Хоть убей =___= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 13:35:42 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Я НАШЁЛ ПРОБЛЕМУ!!!! Если в первом случае он генерирует это Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. То во втором он генерирует не мысленное число add [eax],al Код: pascal 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. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724. 725. 726. 727. 728. 729. 730. 731. 732. 733. 734. 735. 736. 737. 738. 739. 740. 741. 742. 743. 744. 745. 746. 747. 748. 749. 750. 751. 752. 753. 754. 755. 756. 757. 758. 759. 760. 761. 762. 763. 764. 765. 766. 767. 768. 769. 770. 771. 772. 773. 774. 775. 776. 777. 778. 779. 780. 781. 782. 783. 784. 785. 786. 787. 788. 789. 790. 791. 792. 793. 794. 795. 796. 797. 798. 799. 800. 801. 802. 803. 804. 805. 806. 807. 808. 809. 810. 811. 812. 813. 814. 815. 816. 817. 818. 819. 820. 821. 822. 823. 824. 825. 826. 827. 828. 829. 830. 831. 832. 833. 834. 835. 836. 837. 838. 839. 840. 841. 842. 843. 844. 845. 846. 847. 848. 849. 850. 851. 852. 853. 854. 855. 856. 857. 858. 859. 860. 861. 862. 863. 864. 865. 866. 867. 868. 869. 870. 871. 872. 873. 874. 875. 876. 877. 878. 879. 880. 881. 882. 883. 884. 885. 886. 887. 888. 889. 890. 891. 892. 893. 894. 895. 896. 897. 898. 899. 900. 901. 902. 903. 904. 905. 906. 907. 908. 909. 910. 911. 912. 913. 914. 915. 916. 917. 918. 919. 920. 921. 922. 923. 924. 925. 926. 927. 928. 929. 930. 931. 932. 933. 934. 935. 936. 937. 938. 939. 940. 941. 942. 943. 944. 945. 946. 947. 948. 949. 950. 951. 952. 953. 954. 955. 956. 957. 958. 959. 960. 961. 962. 963. 964. 965. 966. 967. 968. 969. 970. 971. 972. 973. 974. 975. 976. 977. 978. 979. 980. 981. 982. 983. 984. 985. 986. 987. 988. 989. 990. 991. 992. 993. 994. 995. 996. 997. 998. 999. 1000. 1001. 1002. 1003. 1004. 1005. 1006. 1007. 1008. 1009. 1010. 1011. 1012. 1013. 1014. 1015. 1016. 1017. 1018. 1019. 1020. 1021. 1022. 1023. 1024. 1025. 1026. 1027. 1028. 1029. 1030. 1031. 1032. 1033. 1034. 1035. 1036. 1037. 1038. 1039. 1040. 1041. 1042. 1043. 1044. 1045. 1046. 1047. 1048. 1049. 1050. 1051. 1052. 1053. 1054. 1055. 1056. 1057. 1058. 1059. 1060. 1061. 1062. 1063. 1064. 1065. 1066. 1067. 1068. 1069. 1070. 1071. 1072. 1073. 1074. 1075. 1076. 1077. 1078. 1079. 1080. 1081. 1082. 1083. 1084. 1085. 1086. 1087. 1088. 1089. 1090. 1091. 1092. 1093. 1094. 1095. 1096. 1097. 1098. 1099. 1100. 1101. 1102. 1103. 1104. 1105. 1106. 1107. 1108. 1109. 1110. 1111. 1112. 1113. 1114. 1115. 1116. 1117. 1118. 1119. 1120. 1121. 1122. 1123. 1124. 1125. 1126. 1127. 1128. 1129. 1130. 1131. 1132. 1133. 1134. 1135. 1136. 1137. 1138. 1139. 1140. 1141. 1142. 1143. 1144. 1145. 1146. 1147. 1148. 1149. 1150. 1151. 1152. 1153. 1154. 1155. 1156. 1157. 1158. 1159. 1160. 1161. 1162. 1163. 1164. 1165. 1166. 1167. 1168. 1169. 1170. 1171. 1172. 1173. 1174. 1175. 1176. 1177. 1178. 1179. 1180. 1181. 1182. 1183. 1184. 1185. 1186. 1187. 1188. 1189. 1190. 1191. 1192. 1193. 1194. 1195. 1196. 1197. 1198. 1199. 1200. 1201. 1202. 1203. 1204. 1205. 1206. 1207. 1208. 1209. 1210. 1211. 1212. 1213. 1214. 1215. 1216. 1217. 1218. 1219. 1220. 1221. 1222. 1223. 1224. 1225. 1226. 1227. 1228. 1229. 1230. 1231. 1232. 1233. 1234. 1235. 1236. 1237. 1238. 1239. 1240. 1241. 1242. 1243. 1244. 1245. 1246. 1247. 1248. 1249. 1250. 1251. 1252. 1253. 1254. 1255. 1256. 1257. 1258. 1259. 1260. 1261. 1262. 1263. 1264. 1265. 1266. 1267. 1268. 1269. 1270. 1271. 1272. 1273. 1274. 1275. 1276. 1277. 1278. 1279. 1280. 1281. 1282. 1283. 1284. 1285. 1286. 1287. 1288. 1289. 1290. 1291. 1292. 1293. 1294. 1295. 1296. 1297. 1298. 1299. 1300. 1301. 1302. 1303. 1304. 1305. 1306. 1307. 1308. 1309. 1310. 1311. 1312. 1313. 1314. 1315. 1316. 1317. 1318. 1319. 1320. 1321. 1322. 1323. 1324. 1325. 1326. 1327. 1328. 1329. 1330. 1331. 1332. 1333. 1334. 1335. 1336. 1337. 1338. 1339. 1340. 1341. 1342. 1343. 1344. 1345. 1346. 1347. 1348. 1349. 1350. 1351. 1352. 1353. 1354. 1355. 1356. 1357. 1358. 1359. 1360. 1361. 1362. 1363. 1364. 1365. 1366. 1367. 1368. 1369. 1370. 1371. 1372. 1373. 1374. 1375. 1376. 1377. 1378. 1379. 1380. 1381. 1382. 1383. 1384. 1385. 1386. 1387. 1388. 1389. 1390. 1391. 1392. 1393. 1394. 1395. 1396. 1397. 1398. 1399. 1400. 1401. 1402. 1403. 1404. 1405. 1406. 1407. 1408. 1409. 1410. 1411. 1412. 1413. 1414. 1415. 1416. 1417. 1418. 1419. 1420. 1421. 1422. 1423. 1424. 1425. 1426. 1427. 1428. 1429. 1430. 1431. 1432. 1433. 1434. 1435. 1436. 1437. 1438. 1439. 1440. 1441. 1442. 1443. 1444. 1445. 1446. 1447. 1448. 1449. 1450. 1451. 1452. 1453. 1454. 1455. 1456. 1457. 1458. 1459. 1460. 1461. 1462. 1463. 1464. 1465. 1466. 1467. 1468. 1469. 1470. 1471. 1472. 1473. 1474. 1475. 1476. 1477. 1478. 1479. 1480. 1481. 1482. 1483. 1484. 1485. 1486. 1487. 1488. 1489. 1490. 1491. 1492. 1493. 1494. 1495. 1496. 1497. 1498. 1499. 1500. 1501. 1502. 1503. 1504. 1505. 1506. 1507. 1508. 1509. 1510. 1511. 1512. 1513. 1514. 1515. 1516. 1517. 1518. 1519. 1520. 1521. 1522. 1523. 1524. 1525. 1526. 1527. 1528. 1529. 1530. 1531. 1532. 1533. 1534. 1535. 1536. 1537. 1538. 1539. 1540. 1541. 1542. 1543. 1544. 1545. 1546. 1547. 1548. 1549. 1550. 1551. 1552. 1553. 1554. 1555. 1556. 1557. 1558. 1559. 1560. 1561. 1562. 1563. 1564. 1565. 1566. 1567. 1568. 1569. 1570. 1571. 1572. 1573. 1574. 1575. 1576. 1577. 1578. 1579. 1580. 1581. 1582. 1583. 1584. 1585. 1586. 1587. 1588. 1589. 1590. 1591. 1592. 1593. 1594. 1595. 1596. 1597. 1598. 1599. 1600. 1601. 1602. 1603. 1604. 1605. 1606. 1607. 1608. 1609. 1610. 1611. 1612. 1613. 1614. 1615. 1616. 1617. 1618. 1619. 1620. 1621. 1622. 1623. 1624. 1625. 1626. 1627. 1628. 1629. 1630. 1631. 1632. 1633. 1634. 1635. 1636. 1637. 1638. 1639. 1640. 1641. 1642. 1643. 1644. 1645. 1646. 1647. 1648. 1649. 1650. 1651. 1652. 1653. 1654. 1655. 1656. 1657. 1658. 1659. 1660. 1661. 1662. 1663. 1664. 1665. 1666. 1667. 1668. 1669. 1670. 1671. 1672. 1673. 1674. 1675. 1676. 1677. 1678. 1679. 1680. 1681. 1682. 1683. 1684. 1685. 1686. 1687. 1688. 1689. 1690. 1691. 1692. 1693. 1694. 1695. 1696. 1697. 1698. 1699. 1700. 1701. 1702. 1703. 1704. 1705. 1706. 1707. 1708. 1709. 1710. 1711. 1712. 1713. 1714. 1715. 1716. 1717. 1718. 1719. 1720. 1721. 1722. 1723. 1724. 1725. 1726. 1727. 1728. 1729. 1730. 1731. 1732. 1733. 1734. 1735. 1736. 1737. 1738. 1739. 1740. 1741. 1742. 1743. 1744. 1745. 1746. 1747. 1748. 1749. 1750. 1751. 1752. 1753. 1754. 1755. 1756. 1757. 1758. 1759. 1760. 1761. 1762. 1763. 1764. 1765. 1766. 1767. 1768. 1769. 1770. 1771. 1772. 1773. 1774. 1775. 1776. 1777. 1778. 1779. 1780. 1781. 1782. 1783. 1784. 1785. 1786. 1787. 1788. 1789. 1790. 1791. 1792. 1793. 1794. 1795. 1796. 1797. 1798. 1799. 1800. 1801. 1802. 1803. 1804. 1805. 1806. 1807. 1808. 1809. 1810. 1811. 1812. 1813. 1814. 1815. 1816. 1817. 1818. 1819. 1820. 1821. 1822. 1823. 1824. 1825. 1826. 1827. 1828. 1829. 1830. 1831. 1832. 1833. 1834. 1835. 1836. 1837. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 13:59:02 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикBred eFeM, Всё же, не помогло. выдаёт 12.271936 сек. Код: pascal 1. 2. 3. 4. Хоть убей =___= Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. [Window Title] Project1 [Content] 3,5363013 [OK] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:11:56 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Тот же код с включенной оптимизацией [Window Title] Project1 [Content] 2,6979584 [OK] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:13:03 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Любопытно, если с Int64 перейти на Cardinal [Window Title] Project1 [Content] 0,3858178 [OK] разница в 10 раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:15:59 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Хоть убей =___=тю, тебе рассказывают-рассказывают, а ты и дальше всякую хрень лепишь )) на, засекай: Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:16:57 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
КвейдЛюбопытно, если с Int64 перейти на Cardinal [Window Title] Project1 [Content] 0,3858178 [OK] разница в 10 раз Да, но не стоит забывать что Cardinal не имеет отрицательного диапазона.. А вот если int64 поменять на integer то разница не большая... =_= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:17:45 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMХоть убей =___=тю, тебе рассказывают-рассказывают, а ты и дальше всякую хрень лепишь )) на, засекай: Код: pascal 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. Ну и что тут изменилось от моего кода ? Всё равно в структуре int64 которая с генерирует дохрена машинного кода как уже выяснялось.. Что с packed что без него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:19:06 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMХоть убей =___=тю, тебе рассказывают-рассказывают, а ты и дальше всякую хрень лепишь )) на, засекай: Код: pascal 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. Действительно, изменилось!!! Теперь он по времени занимает 6.048335 сек. Кхм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:24:07 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Ну и что тут изменилось от моего кода проверил ? смещение Int64 относительно начала структуры изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:28:54 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMНу и что тут изменилось от моего кода проверил ? смещение Int64 относительно начала структуры изменилось. Только всё равно медленно на 3 секунды примерно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:34:11 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикSOFT FOR YOUНяшик, Советую менять case на вызов функции из массива Под x86 кейсы работают ещё более менее, если идут по порядку, а под x64 там бинарный поиск. Лишние команды, переходы А разве вызов функции не будет замедлять ? В принципе, вот такие результаты 3.185233 сек. Код: pascal 1. А вот с case 3.519293 сек. Код: pascal 1. Разница вроде в 0.33406 незначительная из 1000000000 раз Делай SetValuePlus инлайном и тестируй на x64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:45:36 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшикпропущено... А разве вызов функции не будет замедлять ? В принципе, вот такие результаты 3.185233 сек. Код: pascal 1. А вот с case 3.519293 сек. Код: pascal 1. Разница вроде в 0.33406 незначительная из 1000000000 раз Делай SetValuePlus инлайном и тестируй на x64 По тестировать не могу, так как компилятора нету для 64, надо доустаналивать будет ... А так они и так инлайн Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:53:00 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, Тогда я удивлён, что профит вообще есть ) Обычно case-функции не инлайнят ) А вообще ты ещё можешь сделать функции far (или вне этой функции) и первым параметром функции сделать Self ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 14:59:56 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUОбычно case-функции не инлайнят ) Есть какие - то проблемы ? На 32 битном приложении, это незаметно (если есть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:09:23 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUОбычно case-функции не инлайнят ) По скорости инлайн и обычное вставка кода не влияют на производительность Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ........... Код: pascal 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. Код: pascal 1. 2. 3. 4. ....... Код: pascal 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. Код вообще ничем не отличается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:20:59 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикТолько всё равно медленно на 3 секунды примерно Код: plaintext только тебе эти секунды не надо, тебе нужно понимание того, как компилятор расскажет процессору что делать с твоим кодом. а ты даже асм листинг толком посмотреть не можешь и на матчасть забиваешь .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:25:57 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, Не инлайнят потому, что они жрут много executable памяти и занимают кучу регистров, которые нужны для оптимизации вне. У тебя тест простой, может и нет разницы, а на реальных тестах может сыграть роль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:26:46 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMНяшикТолько всё равно медленно на 3 секунды примерно Код: plaintext только тебе эти секунды не надо, тебе нужно понимание того, как компилятор расскажет процессору что делать с твоим кодом. а ты даже асм листинг толком посмотреть не можешь и на матчасть забиваешь .... К слову, если отрубить браузер, то при Код: pascal 1. 2. 3. 4. Он как раз выдаёт 2.871028 сек. О чём лишний раз говорит, что я всё правильно делаю (можно забить на 19 байт, это не 24 и не 30 с лишним) Только ваш северный процессор стоит $347.00 а мой детскопный $47.00 Сравнение ваших и моего процессора E3300 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:50:42 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Не инлайнят потому, что они жрут много executable памяти и занимают кучу регистров, которые нужны для оптимизации вне. У тебя тест простой, может и нет разницы, а на реальных тестах может сыграть роль Пока не наблюдал проблем, я уже в VM машину включил их для переменных, которые активно участвуют в вызовах функций, констант и так далее Возможно такой проблемы нету, из за того что я использую прямую адресацию к своей структуре. И компилятору не составляет труда вставить его неизменным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:54:01 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, Мне кажется, ты уже долго мучаешься с ним Давай ускоряйся И помни, что важна не скорость компиляции, а скорость исполнения. Или в PHP это одно и то же? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:08:40 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Мне кажется, ты уже долго мучаешься с ним Давай ускоряйся И помни, что важна не скорость компиляции, а скорость исполнения. Или в PHP это одно и то же? ) Ну как бы, я параллельно задаю вопросы и реализовываю по плану желаемое (И потом, если что - то узнаю полезное, изменяю.) Насчёт скорости компиляции речь не шла. Я старался сделать контейнер компактнее, и максимально быстро (Но жертвовать приходиться всегда) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 16:34:09 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
если отрубить браузервот-вот, ос и другие проги отбирают кеш. всё правильно делаю Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:17:37 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMобъясни, что тут и как, и будет всё++ Код: pascal 1. 2. 3. Надо объявить память под переменную, в переменной выделить память 4 байта под структуру StrRec Данная структура хранит информацию о длине строки, счётчик ссылок, и информацию о кодировки с прочей лабудой. Дальше, мы копируем байты основной строки в наш бокс, который может держать в себе PAnsiChar и PWideChar с string который в итоге будет UnicodeString Перезапись, в функции CopyArray а именно _LStrAsg -> _LStrClr вызовет FreeMem и не будет утечек. Длину строки можно получить так (в быстрой формулировки) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 18:26:28 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
НяшикSOFT FOR YOUНяшик, Мне кажется, ты уже долго мучаешься с ним Давай ускоряйся И помни, что важна не скорость компиляции, а скорость исполнения. Или в PHP это одно и то же? ) Ну как бы, я параллельно задаю вопросы и реализовываю по плану желаемое (И потом, если что - то узнаю полезное, изменяю.) Насчёт скорости компиляции речь не шла. Я старался сделать контейнер компактнее, и максимально быстро (Но жертвовать приходиться всегда) ты сначала сделай, чтобы всё работало, весь функционал твоего интерпретатора PHP работал от начала и до конца и был покрыт тестами, а потом будешь гнаться за скоростью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 19:15:44 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
память 4 байта под структуру StrRec Данная структура хранит информацию о длине строки, счётчик ссылок, и информацию о кодировки с прочей лабудой. и всё в 4 байта ? копируем байты основной строки в наш боксв бокс, так там StrRec, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 19:21:57 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
defecatorНяшикпропущено... Ну как бы, я параллельно задаю вопросы и реализовываю по плану желаемое (И потом, если что - то узнаю полезное, изменяю.) Насчёт скорости компиляции речь не шла. Я старался сделать контейнер компактнее, и максимально быстро (Но жертвовать приходиться всегда) ты сначала сделай, чтобы всё работало, весь функционал твоего интерпретатора PHP работал от начала и до конца и был покрыт тестами, а потом будешь гнаться за скоростью. Ну вот zend переписывали, и что это дало??? Да, безусловно есть оптимизация с предыдущими тестами. Но не на много. А теперь они оптимизируют ядро на вызовах (вырезая их) Bred eFeMпамять 4 байта под структуру StrRec Данная структура хранит информацию о длине строки, счётчик ссылок, и информацию о кодировки с прочей лабудой. и всё в 4 байта ? копируем байты основной строки в наш боксв бокс, так там StrRec, не? Выделить надо 4 байта, для того что бы записать туда. Это не я придумал, это даже в TValue реализовано (От туда и подчеркнул для себя). Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 19:35:24 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
это даже в TValue реализованону, и где там слово '4' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:02:13 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшикdefecatorпропущено... ты сначала сделай, чтобы всё работало, весь функционал твоего интерпретатора PHP работал от начала и до конца и был покрыт тестами, а потом будешь гнаться за скоростью. Ну вот zend переписывали, и что это дало??? Да, безусловно есть оптимизация с предыдущими тестами. Но не на много. А теперь они оптимизируют ядро на вызовах (вырезая их) пытаясь сразу сделать супер-пупер-быстро, вместо безошибочной реализации всего функционала, ты углубляешься в детали, которые на данном этапе малосущественны. Будешь как SOFT FOR YOU - море говнокода, понты "у меня самый быстрый в мире код", а на выходе - пшик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:04:23 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeM это даже в TValue реализованону, и где там слово '4' ? 4 это Pointer, моя ошибка что не уточнил.. Извиняюсь ! Вот приме того что будет. defecatorНяшикпропущено... Ну вот zend переписывали, и что это дало??? Да, безусловно есть оптимизация с предыдущими тестами. Но не на много. А теперь они оптимизируют ядро на вызовах (вырезая их) пытаясь сразу сделать супер-пупер-быстро, вместо безошибочной реализации всего функционала, ты углубляешься в детали, которые на данном этапе малосущественны. Будешь как SOFT FOR YOU - море говнокода, понты "у меня самый быстрый в мире код", а на выходе - пшик. Функционал библиотечных функций я хочу реализовывать на самом SPHP, а потом возможно конвертировать в Delphi код и компилировать (Это позволить качественно дебажить код из самого SPHP и при желании собирать в бинарник полностью, без VM) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:10:19 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
defecator, Сам ты говнокод ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:21:17 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
4 это Pointerхорошо, значит у тебя TBoxArray это Pointer, который указывает на ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:22:13 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeM4 это Pointerхорошо, значит у тебя TBoxArray это Pointer, который указывает на ? В общем вот, что получается.. Я как то на словах плохо объясняю, мне это не дано от слова совсем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 20:34:44 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Вы наверно будете смеяться,но это надо точно занести в топик как я ложанулся... Код: pascal 1. 2. 3. 4. Я думал что на структуры это не распространяется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 00:20:25 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Няшик, будем: - а зачем там packed - наверное можно убрать - и для чего _type, если есть <T> - тоже убрать - а зачем то, что осталось - хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 00:47:46 |
|
||
|
int64 и перечисление в структуре
|
|||
|---|---|---|---|
|
#18+
Bred eFeMНяшик, будем: - а зачем там packed - наверное можно убрать - и для чего _type, если есть <T> - тоже убрать - а зачем то, что осталось - хз _type нужен для описания таких типов из PHP как resource, iterables, object, callable (Собственно их описания не уместишь <T>) А packed остался просто так (Вполне возможно не нужен. Но пока не буду убирать.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2017, 01:15:47 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2042169]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
209ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
108ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 589ms |

| 0 / 0 |
