|
|
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Завтра обязательно проверю. Но то что вижу CopyMemory это прослойка Move но я не думаю что это в 5 раз могло ускорить или за тормозить. Хотя Delphi это еще тот фрукт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:03 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ну вот, провёл тест. Сделал ещё 1 функцию копию. Но сделал фиксировано длину 5000 символов, это именно та длина, которая генерируется при Код: pascal 1. 2. По этому сейчас 1 место под выделения памяти TestBuild: 0.738177 TestBuild5000Bytes: 0.729484 BuildStringLiteral: 3.590787 Разница составляет в пук младенца - 0.008693 и то, потому что я убрал Код: pascal 1. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:05 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Даю подсказку, Memo.Lines это не TStringList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55 ВсеРазумный, Завтра обязательно проверю. Но то что вижу CopyMemory это прослойка Move но я не думаю что это в 5 раз могло ускорить или за тормозить. Хотя Delphi это еще тот фрукт. Не надо мифов. Эта inline функция Код: sql 1. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ ВсеРазумный, Даю подсказку, Memo.Lines это не TStringList. Ой пасибо Код: pascal 1. А мы и не знали, и не умели делать TStrings AS TStringList ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:09 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Надеюсь, что вы троллите иначе конечно, это печально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#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. 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. Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:13 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, Я обязательно завтра проверю. Раз пошла такая пьянка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:15 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ ВсеРазумный, Надеюсь, что вы троллите иначе конечно, это печально. Это вы издеваетесь, честное слово. Код: 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. Заменив TStrings на TStringList ничего не поменялось. TestBuild: 0.730820 BuildStringLiteral: 3.607540 К чему вы вообще начали этот пустой разговор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:17 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Кстати, в компиляторе большое количество функций компилируется как inline но вы не увидите рядом с функцией слово inline так как это задаётся внутри компилятора К примеру FreeAndNil тоже inline функция хоть на ней это не написано. Но в скомпилированном коде к ней нет вызова, идёт встраивания ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:24 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
SDima55, Если вы действительно используете TStringList, а не прямой доступ к Memo.Lines , то разницы почти не будет. Вообще Memo.Lines лучше на прямую не использовать в передаче и обработке текста, особенно если понадобится вынести работу с отчетом в потоки. Memo.Lines является экземпляром TMemoStrings , который работает через sendMessage на каждый Lines[i] вызов Get c sendMessage . Отсюда и задержка такая в моем варианте. Если как вы и описали, к вас TStringList то изначальный вариант будет быстрей, правда не значительно. ВсеРазумный , к сожалению не до конца понимает о чем говорит, не разобравшись ни в описании проблемы, ни почему его вариант "быстрей". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:28 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Это вы издеваетесь, честное слово. Жесть, кастовать класс TMemoStrings к TStringList. Продолжайте, я заинтрегован. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:31 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ясно. Незнание ООП и простейшей Иерархии обращений к предкам. Понятно, что если мы будем работать с чистым string быстрее. Но я хотел привести пример, что ваш код - с точки зрения в изначальном проектирование - фуфло. Не потому что вы используете TString с sendMessage А потому что вы нагородили огород с огурцами, помидорами и картошкой. Вы мистер КЭП. И быстрее ваш код, моей функции не будет. Так как я уже сказал: проектирование функции - фуфло 1) Вы делается цикл по всем строкам, и считаете длину Код: pascal 1. 2. Слишком много хлама дальше. Это именно - то, почему ваша функция медленная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:54 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Понятно, что если мы будем работать с чистым string быстрее Код: 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. Нее.. Не будет, к сожалению. Все варианты ведут на эту функцию. Быстрее, избавится вообще от TMemo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2020, 23:59 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Всё уже ясно. Моя функция - лучший вариант. И быстрее уже не написать. Если только избавится от TMemo в принципе. Так как вообще всё TStrings\TStringList использует одну функцию - GetTextStr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:01 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Если вы сидите и думаете что один вызов setlength будет быстрее чем пару выделений по 128 но при этом используете Код: pascal 1. 2. То это Полная беда.. И тут лечится уже надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:04 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, Мда, интересно посмотреть в какой это версии Delphi TMemoStrings от TStringList. В прочем, уже не важно, с вами уже все понятно. Неприятно правда, что вы вводите людей в заблуждение, но это уже на совести конкретного человека кто принимает решение, я дал человеку максимальное объяснение происходящего. А тут наверное, делфа заглючила. Что-то быстрей стало исполнятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:07 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Ну и ваш же пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:08 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
Можете попробовать оптимизировать еще через ассемблерные вставки, чем черт не шутит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 00:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_, не парься. Здесь хватает "оптимизаторов от Бога")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 03:35 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
white_nigger, Я с саппортом периодически работаю, после этого мало что может удивить ) Но топик наткнул на идею, добавить в список вопросов на собеседование, примерно такой : Дана функция которая работает со строкой: Код: pascal 1. 2. 3. 4. Есть ли принципиальное отличие в приведенных ниже вызовах функций ? Какая из них будет работать быстрее и почему ? Вариант 1: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вариант 2: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Извините за оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:11 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
_Den_Z_ добавить в список вопросов на собеседование Рановато в собеседники идти. _Den_Z_ Код: pascal 1. 2. Даже не смотря на PChar(@S[1]) и бессмысленность примера в целом. Разве что избавиться от конкуренции? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:43 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
wadman, Простите, а что не так ? Это , конечно, не теннисными мячиками автобус заполнять. Или нужно писать код генерации строки длинной 1000 символов. Тут отброшены все условности , чтобы поместилось на бумажке. Суть то вопроса, не найти смысл в коде. А выявить различия и понять играют ли они роль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 14:48 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
wadman _Den_Z_ добавить в список вопросов на собеседование Рановато в собеседники идти. _Den_Z_ Код: pascal 1. 2. ... ... Числа одинаковые? Или что? Вирус оптимизаторства зацепил? Код: pascal 1. 2. 3. 4. - так надо было? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:02 |
|
||
|
Fast Report - апострофы в переменных
|
|||
|---|---|---|---|
|
#18+
ъъъъъ, Наоборот, испугался подхватить. Это просто примерный шаблон, цикл, функцию(WINAPI, Move итд) можно заменить ,если уж так нужен смысл в этом куске кода. Просто поделился идеей, основываясь на бреде про использование Length из топика. Упор сделан на Length, в цикле и вне цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2020, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39956572&tid=2038333]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 408ms |

| 0 / 0 |
