|
|
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Наткнулся на один интересный коммент Peter Below'a - https://en.delphipraxis.net/topic/576-maintaining-for-loops/?tab=comments#comment-4225 Instead of Код: pascal 1. use a list class: Код: pascal 1. 2. 3. 4. Add public methods to the class that implement your current for loops. This way you have all this code centralized in one place, which should massively simplify the maintenance. And while you're at it: convert the record into a class. Lists of records are a bit inefficient since accessing the items in the list involves a lot of copying of data. You can then use a TObjectlist<TProject> as base class for your TProjectlist and let the list manage the memory of the TProject objects you add to it (OwnsObjects parameter for the list constructor set to true, which is the default). Может кто "разжевать" выделенное жирным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 13:51 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYingМожет кто "разжевать" выделенное жирным? TObject это указатель. record это POD тип. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 13:56 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYing, очередная агитация за конвертить записи в классы, хотя казалось что идиоты кончились уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:03 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)очередная агитация за конвертить записи в классы, хотя казалось что идиоты кончились уже Да вроде как неудобно называть человека из команды TeamB идиотом :) Так стоит все же следовать его совету или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:28 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYingТак стоит все же следовать его совету или нет? Стоит мозгом подумать об отличии array of record от array of TObject. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:30 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYingkealon(Ruslan)очередная агитация за конвертить записи в классы, хотя казалось что идиоты кончились уже Да вроде как неудобно называть человека из команды TeamB идиотом :) Так стоит все же следовать его совету или нет?не стоит чудные люди, наплодят дырявых абстракций, а потом советы раздают как с этим жить сделай простую обёртку с получением адреса и все проблемы с производительностью исчезнут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:37 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
- Дверь? Котора дверь? - Котора дверь! Вот эта. - Эта? Прилагательна. - Почему ж? - Потому что она приложена к своему месту. всё хорошо в меру и к месту. но есть ещё и МОДНЫЕ веяния... а Петя Бигелоу, тот ещё "евангелист". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:37 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYingТак стоит все же следовать его совету или нет?Зависит от... Часто стоит в том числе и из-за перформанса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:41 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)чудные люди, наплодят дырявых абстракций, а потом советы раздают как с этим жить сделай простую обёртку с получением адреса и все проблемы с производительностью исчезнутНу конечно лучше плодить костыли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:42 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYing, Всё верно он говорит. 1. Что ты там будешь делать с TArray не понятно и не наглядно. 2. У массива нет методов 3. В результате - ты ничего не выигрываешь, кроме выноса мозга. 4. TList/TObjectList/TDictionary/TObjectDictionary - стандартные классы для работы со списками. Причём не только для Delphi. Не делай своих велосипедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:44 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
21.01.2019 14:42, white_nigger пишет: > Ну конечно лучше плодить костыли не костыли, а аддоны! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:45 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
white_niggerНу конечно лучше плодить костылизачем костыли, обычный перевод STL, всё апробовано и работает нормальные итераторы, нормальные контейнеры без заскоков и выделения памяти на каждый чих куда деваться если стандартная либа вся в ляпах и недоделках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 14:52 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)LiYingпропущено... Да вроде как неудобно называть человека из команды TeamB идиотом :) Так стоит все же следовать его совету или нет?не стоит чудные люди, наплодят дырявых абстракций, а потом советы раздают как с этим жить сделай простую обёртку с получением адреса и все проблемы с производительностью исчезнут Все тут прям замучены нарзаном вопросом о производительности. А количество тактов процессора ты уже посчитал, которые выиграет TArray<> против TList<>? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 15:21 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Dimonka, к производительности взывают создатели сего творения, что вызвало у LiYing вполне здравый вопрос я просто говорю, что не вижу никакого смысла спорить кто быстрее черепаха или улитка кому надо делают нормальные либы и не парятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 16:01 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Ради быстродействия в своем TArrayEx<T> = record даже SetLength захакал. :) Типа так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 20:48 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), Теоретик... Блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 21:14 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
DimonkaА количество тактов процессора ты уже посчитал, которые выиграет TArray<> против TList<>? Дело не [только] в тактах, а в многократном выделении/освобождении кучи мелких кусочков памяти вместо одного большого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 22:39 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
LiYing, надо не разжовывать выделенное, а смотреть, что дальше написано -- это самое главное. Генерики наше всё. На порядок ускоряет разработку и снижают рутину. Долой бесконечную копипасту с самописными списками и рекордами. А уж про отладку -- так это манна небесная. Все на броневичок генериков! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 23:06 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
JaDi, одно другому не мешает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 00:11 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Gatorkealon(Ruslan), Теоретик... Блин.хотелось бы, но ещё и код выдавать нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 00:16 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
rgreatРади быстродействия в своем TArrayEx<T> = record даже SetLength захакал. :) Типа так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Чистым бредом попахивает, ей богу! Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Что может быть легче ??? Ну если это медленно, из за использования length то давайте развратимся Код: 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. Не уверен что при оптимизации это что то даст! Но давайте заменим SetLength на реаллок!!! Код: 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. Мне кажется,теперь эта по настоящему FAST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 03:36 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Что может быть легче ??? Ну если это медленно, из за использования length то давайте развратимся Вариант 1: Угу. Тупой вариант. Но при нем теряется целостность состава массива v. В конце будет мусор из неиспольземых элементов, что для меня неприемлемо. Вариант 2: Тоже самое, только через лоу-левел жопу. В моем-же варианте я имею и возможность безопасной прямой работы с элементами массива, при этом сохраняя скорость add. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 03:46 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
Иными словами мой вариант при высокой скорости добавления элементов в массив сохраняет работоспособность функций Length(Array) и High(Array). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 03:49 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#18+
rgreat, Кхм. Странное преимущество. Когда я могу просто MyArray.CurrentLength и получить текущий размер. rgreat В конце будет мусор из неиспольземых элементов, что для меня неприемлемо. А ты хранишь типа, ключи к другому массиву ??? Если в другом массиве удалилось значение, то в другом это отобразится и следующий добавленный элемент встанет на место удалённого? 0.722683 секунд, при добавление 50000000 элементов Код: 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. Самый простой 0.9 секунд Код: 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. На этот Я вообще НЕ надеялся. Но если убрать length то 0.9 сек Код: 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. А теперь обычный TList Код: 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. Выдал 0.724371 Короче выдумывать костыли не стоит ... Я теперь уверен что и твоя чуда магическая штука, не чуть НЕ быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 04:17 |
|
||
|
Список классов vs списка записей - в чем преимущество?
|
|||
|---|---|---|---|
|
#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. 153. 154. 155. 156. 0.616766 Почему то, самый лучший результат, если по 21 выделять элемента. Ниже или выше.. Завывают медлительность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 04:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39762393&tid=2039896]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 461ms |

| 0 / 0 |
