|
|
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpub Пардон, не разобрал на телефоне. А, при чём здесь длина строки вообще? она и так в -4 байта лежит... Серьёзно? Я тут говорю, что в 4 байтах можно по маске сразу понять, есть ли символ. А он не понимает. Эх ты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:34 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyzinpub, Вот с проверкой четвёрками: Код: 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. Работает на 30% быстрее PEnd. Правда не знаю, умеет ли Delphi 5 div и mod оптимизировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:37 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
ГирлионайльдоzinpubПардон, не разобрал на телефоне. А, при чём здесь длина строки вообще? она и так в -4 байта лежит... Серьёзно? Я тут говорю, что в 4 байтах можно по маске сразу понять, есть ли символ. А он не понимает. Эх ты. Так это всё равно на 4 маски сравнивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:38 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubЭээ и что за камень? поставил у себя 50 000... i5 6500 Ты сам постил аналогичные результаты для 50 000 21586838 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:39 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubГирлионайльдопропущено... Серьёзно? Я тут говорю, что в 4 байтах можно по маске сразу понять, есть ли символ. А он не понимает. Эх ты. Так это всё равно на 4 маски сравнивать... Хотя нет, кажется понял... Ща буду думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:40 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
afgmzinpubЭээ и что за камень? поставил у себя 50 000... i5 6500 Ты сам постил аналогичные результаты для 50 000 21586838 Это не я ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:45 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpub, Там в коде нескольких функций (ReplaceCharByPChar в частности) допущена ошибка о которой я уже писал - меняются символы в исходной строке (копирования данных не происходит - выше скорость): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:47 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubЭто не я ... Я ошибся, но там порядок похожий. 1. В коде CNT_RUN с циклом не связана. 2. Погрешности now нет. Переделал на StopWatch. Всё аналогично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:55 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpub, Вот тут можно подробнее узнать о этом http://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:08 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexeyzinpub, Там в коде нескольких функций (ReplaceCharByPChar в частности) допущена ошибка о которой я уже писал - меняются символы в исходной строке (копирования данных не происходит - выше скорость): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Да, косякнул... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:13 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
afgmzinpubЭто не я ... Я ошибся, но там порядок похожий. 1. В коде CNT_RUN с циклом не связана. 2. Погрешности now нет. Переделал на StopWatch. Всё аналогично. CNT_RUN с Edit'ом связана... Код покажи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:15 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Я делал PosByte на этих бинарных трюках, выходило шустрее даже асмового Pos для анси строк. Но вот незадача - для юникод строк это уже не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:19 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubДа, косякнул... Другие функции проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:19 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubКод покажи... source Код: 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. Можешь выслать свою тестовую программу целиком на afgm[гав]mail.ru ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:28 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
afgmМожешь выслать свою тестовую программу... Ответ по поводу скорости уже нашёл Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 12:21 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
1. Многопоточность никак не поможет? Мне с файлами, бывает, сильно помогает. 2. MMX никак не поможет? Ну и с объемными данными тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 12:47 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Я нашёл способ, как проверить, есть ли какой нибудь символ в 4 байтном слове Код: pascal 1. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 12:50 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Привет. zinpubМожет, кто подскажет, как ещё быстрее можно... Начал с такого Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Можно читать по 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. С уважением, Poleosv. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 13:24 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Я сделать самую быструю функцию! Кто сможет меня вздёрнуть?) (Только не надо SSE, он точно быстрее будет) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код тестовый Код: 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. Функция Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 13:54 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Polesov, Твоя asm функция капелька в море в производительности Rep4Bytes -> 00:01:083 UseLodsD -> 00:02:088 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 13:57 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 14:01 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
zinpubKazantsev Alexeyzinpub, Там в коде нескольких функций (ReplaceCharByPChar в частности) допущена ошибка о которой я уже писал - меняются символы в исходной строке (копирования данных не происходит - выше скорость): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Да, косякнул... вставь между этими операторами Код: pascal 1. и чтобы сразу видеть инвалидные функции в тело RunFunc можно добавить предварительную проверку Код: pascal 1. 2. 3. 4. 5. и наконец, в объявление функций лучше добавить const Код: pascal 1. также можно рассмотреть процедуры Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 14:02 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
Гирлионайльдо, чей-то софт напоминает) но тоже инвалид. Кстати, по-хорошему, можно было бы обобщить на любую пару символов и с масками игру с масками осилить до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 14:13 |
|
||
|
Быстрая замена символа
|
|||
|---|---|---|---|
|
#18+
ГирлионайльдоЯ сделать самую быструю функцию! Кто сможет меня вздёрнуть?) Это как раз тот момент, когда оптимизация превращает код в колдунство. И опять же, это только для однобайтовых строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 14:14 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39676879&tid=2040575]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 556ms |

| 0 / 0 |
