|
|
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Меня заинтересовало, а на сколько быстрее Delphi массивы по сравнению с PHP массивами. Я долго думать не стал, и запилил тест... Оказывается, Delphi не быстрее , он медленнее в плане массивов... Я поставил простые задачи(С права на снимке), и решил их с помощью стандартных средств Delphi и с помощью PHP. Исходник проекта (Есть скомпилированный BUILD. VS 2017 redistributable) https://cloud.mail.ru/public/4Bgr/GtGHhBuZ5 Исходник PHP 7.4.5 (52 мб) (Для компиляции НЕ нужна VS) (Портативный компилятор VS в комплекте) https://cloud.mail.ru/public/31FY/4BWG5PjUs Важные файлы там по пути \7.4.5\src\mytest\(EnigneFunction.c\EnigneFunction.h) Подключение на стороне Delphi файлик PHPRunner\Engine.pas Код: 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. Код теста Код: 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. Я выбрал TDictionary так как он подходит как аналог - лучше всего. Можно менять как тип ключа, так и значения. Что аналогично PHP Примеры очень простые, тут даже нету realloca (Я думаю результаты будут ещё хуже у Delphi. Но можно проверить если будет интересно, убрав выделения 1000000) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:30 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Массивы и TDictionary... Какая связь? Никакой. Ну как всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:37 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, А тут идёт тестирование хэш таблиц, которые могут принимать в качестве ключа ещё и строковой тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:37 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, И причем тут массивы? Правильно - не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:40 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Когда я вижу реализацию Arr[i] = i; & Arr[i] = Arr[i] * Arr[i]; через TDictionary меня пробивает на ржач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:44 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Это всего лишь тест. Как бы для тебя он смешным не был, но извлечение из TDictionary тебе не избежать И как раз, мы извлекаем значение, изменяем его, и шлём назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:46 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Ничего что реально через реальные массивы все будет работать раз в n-дцать быстрей? Ну протестируй еще умножение двух чисел через передачу их в виде файлов на фтп и тоже обзови тестом массивов. Это же просто тест. (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:49 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Но тест ведь объективный ? По сравнению с PHP. Разве нет? Извлечение по индексу идёт функцией Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. В PHP же Код: plaintext 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. И это всё равно быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:54 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Ну реальные массивы к сожалению не поддерживают Arr[STRING] = STRING по этому, реальные массивы не будут работать быстрее уже. Потому что тебе придётся использовать TDictionary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:55 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Хочешь сравнить работу конкретных реализаций словарей - на здоровье. Но не надо сравнивать теплое с мягким. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 02:58 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Массивы для всех разные. К примеру для тебя массивы это классический array для кого - то TDictionary Это ведь массив в любом случае, хоть коллекционный https://swiftbook.ru/content/languageguide/collection-types/ swiftbookSwift обеспечивает три основных типа коллекций - это Массивы, Множества и Словари для хранения коллекций значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:00 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#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. 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. 0.929075 0.004351 Но ты можешь продолжать работать через словари. На здоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:06 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Скачал твоё поделие, попробовал.. Эм... А разница в чём? У меня не в чём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:11 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Ты бы "мою" функцию ради приличий хотя бы вызвал, что-ли. ;) И работай через .items - так еще на порядок скорость поднимешь ибо не будет проперти дергать зазря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:14 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Да, извини... Видно я откат нажал, и не заметил.. А всё равно в качестве ключа нельзя использовать string Код: pascal 1. Тогда это ничем не отличается от (кроме некоторых плюшек маловажных) Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:22 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Убрал Я инициализацию количество элементов, включая и в твоём примере Всё таки можно удивится! На сколько быстрыми сделали хэш таблицы в PHP Код: 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. rgreat 0.180867 против 0.199431 от php Чистая индексация даёт о себе знать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:39 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
Надо учесть тот факт, что добавление идёт через такую функцию Код: plaintext 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. И возможно, на чистом c\c++ было бы быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 03:52 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный rgreat 0.180867 против 0.199431 от php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 04:21 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
rgreat, Я его не испортил. Я его привёл в рабочий вид. Именно так его и будут использовать - если будут. :D Я же говорю, в твоём коде нет смысла, когда есть Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 04:40 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный TDictionary это не массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 09:43 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, авторНо тест ведь объективный ? По сравнению с PHP. Разве нет? Когда вы говорите такое чувство что вы бредите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 11:58 |
|
||
|
PHP Array VS Delphi Array
|
|||
|---|---|---|---|
|
#18+
makhaon Когда вы говорите такое чувство что вы бредите Нет, это увы - вы бредете. 1) Устанавливаем значение в индекс 2) Изымаем (Просто для примера Понимаете? Вам не избежать изъятия по индексу) 2) Просто для примера умножаем и кладёт обратно. И это проворачиваем на zend array и delphi. По этому он объективный. X11, Да вот тут ссылку скидывали https://habr.com/ru/post/282902/ MrShoorИтак мы подготовили массив из скажем 10 bucket-ов. Ой.. Везде там коллекция упоминается как массив. Каак же так)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2020, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39955800&tid=2038339]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
209ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 495ms |

| 0 / 0 |
