|
|
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
По теме, я уже сказал. Бессмысленно гонять датасет для отрисовки зависимых ячеек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:21 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrПо теме, я уже сказалтебе показалось DimaBrБессмысленно гонять датасет для отрисовки зависимых ячеекбессмысленно создавать во вьюшке невидимый в гриде столбец и соответственно забивать память в датаконтроллере под поле если его значение используется лишь как "зависимое" в то время как его (как и все остальные впрочем) можно взять из датасета где оно уже есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:28 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Синтетический тест на таблице 8000 строк Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:32 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrСинтетический тест"любой тест показывает ровно то что хотел продемонстрировать тестирующий" (С) и в чем смысл аццкой манипуляции? если ты хотел показать как не надо делать, то у тебя получилось нормально а вообще то что нужно отключать визуальщину при массовой колбасне на датасете я получше тебя знаю или может ты хотел продемонстрировать слабость адошных компонент? повторю тебе свой вопрос, хочешь дам демку на DimaBrЗагрузите в грид пару сотен строк, и потаскайте ползунок вверх-вниз а ты мне укажешь на минусы решения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Уже указал, если гонять датасет, то скорость падает в 2 раза, недостаточно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:52 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Не важно какие компоненты доступа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 13:53 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBr, Да бог с ним. Не хочет человек брать значение из соседней ячейки грида, у него двоичный выбор или невидимый столбец делать (практично, но неэлегантно), или лезть в DataSet, искать поле (у топикстартера вообще через FieldByName), делать кучу проверок типа CheckBrowseMode и т.д. Процессоров много - стерпят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:18 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrскорость падает в 2 раза, недостаточно ?скорость выполнения бессмысленной операции (скорее даже бредовой), конечно недостаточно. а вот моя демка, слепленная по твоему описанию задачи, проблем со скоростью не демонстрирует даже на объеме большем заказанного в 40 раз. кроме того, при моделировании твоего синтетического тестового кода у меня скорость одинаковая для обоих способов DimaBrНе важно какие компоненты доступа"садись два" (С) Ariochили невидимый столбец делать (практично, но неэлегантно)ровно наоборот. элегантно, с точки зрения минимума телодвижений, потому как делается практически только мышкой. однако в случае если задумываешься о кол-ве потребляемой памяти - непрактично Ariochили лезть в DataSet, ..., делать кучу проверок типа CheckBrowseMode и т.дты наверное думаешь что девэксы тебе все забесплатно дают и максимально эффективно? заблуждаешься AriochПроцессоров много - стерпятповторюсь что даже бредовый синтетический тест от DimaBr свыше работает одинаково быстро для обоих способов Ariochвообще через FieldByNameтолько в моем не Lookup юзается а FindKey и вовсе нет FieldByName, ну да это непринципиально том в смысле что не меняет сути предлагаемого способа и одновременно принципиально подчеркивает существенные различия в эффективности разных датасетов чего очевидно не понимает DimaBr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:40 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> девэксы тебе все забесплатно дают и максимально эффективно? эфективность не важна. А бесплатность - да, бесплатно. Потому что они уже при отрисовке выбрали текущую Record, которую передают в события. Ее искать не надо - они ее уже нашли для своих собственных нужд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:44 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
а тест действительно странный. делать ADOTable1.Next - т.е. дёргать датасет - чтобы продемонстрировать как быстро будет работать, если его не дёргать. Брр... Тест должен быть примерно такой: * Открыть редактирование какой-то ячейки. * Ввести туда новый текст, но редактор не закрывать пока - остаемся в процессе редактирования. * 8000 раз случайно выбрать ячейку на экране и ее перерисовать. * 3америть время и проверить, что редактор по прежднему открыт, на нужной ячейке и не потерял введённое пользователем (но не сохранённoе ещё в ячейку) значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochэфективность не важнаспасибо, засим можно закругляться хотя непонятно тогда зачем ты упомянул процессора Ariochда, бесплатноеще раз напоминаю о доп. затратах памяти на хранение "невидимого" поля в датаконтроллере. ну если для тебя "бесплатно" это когда наплевать как на скорость так и на прожорливость то больше нечего добавить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:50 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
vavan, эффективность важна в целом. т.е. там где ты на неё можешь повлиять. если ты можешь делать или не делать, делать быстро или медленно - тогда это важно. а если ты все равно это будешь делать строго определённым способом - то не важно. Есть такое слово - "инвариант". Эффективность поиска строки внутри cxGrid - это инвариант. Это константа, которую надо вынести за скобки и сократить. А после сокращения уже не важно чему она была равна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:54 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
>на хранение "невидимого" поля в датаконтроллере Да нету такого поля в исходнйо задаче, нету. Не выдумывай. > Необходимо разукрасить ячейку в зависимости от значения соседней. СОСЕДНЕЙ. Т.е. ячейка уже есть, она тоже инвариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:56 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochтест действительно странныйя ж говорю, это яркий пример "как не надо делать" был бы еще смысл какой практический, можно было бы думать. а тут апдейт грида после смены текущей записи и так по всему датасету! Ariochделать ADOTable1.Next - т.е. дёргать датасет - чтобы продемонстрировать как быстро будет работать, если его не дёргатьnext-то делать вполне нормально, а вот нахера цветомузыка со скроллирующейся активной датааварщиной?? и даже так, в моей демке оба варианта одинаково тормозные AriochТест должен быть примерно такойя ж тебе предлагал демку, можешь изголяться как хочешь и когда покажешь где оно ломается я с интересом ознакомлюсь. потому как мне откровенно непонятно описание твоего предложения по тестированию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 14:57 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Тест вполне нормальный, имитирует прокручивание грида с первой строчки до последней, в принципе неважно какие действия проводятся в тесте, главное что при разном доступе к данным значительно падает время. vavan, давайте посмотрим на ваш тест !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:03 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ariochэффективность важна в целом. т.е. там где ты на неё можешь повлиять. если ты можешь делать или не делать, делать быстро или медленно - тогда это важно. а если ты все равно это будешь делать строго определённым способом - то не важнопомедленнее плз, я записываю будь любезен мудрые мысли привязать к обсуждаемой конкретно задаче, теоретическую пургу позволю себе пропустить Ariochнету такого поля в исходнйо задаче, нету. Не выдумывайвот именно, в исходной задаче "невидимого" поля в гриде не было. потому и Bobbyпришлось добавить колонку color и сделать ее невидимой AriochСОСЕДНЕЙ. Т.е. ячейка уже естьследует конечно уточнить у OP но я полагаю что он возможно имел в виду раскрасить ячейку соответствующую определенному полю в зависимости от значения соседнего поля, в гриде не отображаемого но вообще если ты понял задачу именно так как понял то тогда у меня возражений нет никаких. если поле полюбасу показывается в гриде (т.е. 1х грузится в контроллер) то нет смысла изголяться как предлагаю я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:11 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Ждём вашего теста !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:15 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Это не теоретическая пурга. Какая разница как долго ищет запись гридконтроллер если он ее все равно ищет ? Предлагается сравнить время двух подходов 1) (поиск текущей записи в контроллере + получение и преобразование значения из массива вариантов) 2) (поиск текущей записи в контроллере + поиск текущей записи в датасете + получение и преобразование значения из TField) Я сказал что эффективность поиска строки контроллером не нужна - она не отразится на результате сравнения. Ты сказал, что это чушь и про эту эффективность надо думтаь. Ок, покажи как эта эффективность, какой бы она не была кроме бесконечности, может повлиять на результаты сравнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:16 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
> имитирует прокручивание грида ну так кешируются гридом значения не от прокручивания, а потому что вызов событий нарисовать/раскрасить по болшому счёту не связан с текущей строкой в гриде/датасете. И изначално волпрос был про раскраску не текущей строки, а какой-то другой. т.е. пример показывает, что Locate замедляет в полтора раза прокрутку, да. Но речь-то не о прокрутке была. Настоящие тормза пойдут там, где прокрутки датасета до сих пор вообещ не было, а тут придется делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:19 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrТест вполне нормальныйконечно "нормальный", только от жизни слегка оторванный DimaBrимитирует прокручивание грида с первой строчки до последнейугу, теперь рассказывай в какой твоей "нормальности" оператор скроллирует врукопашную грид от первой до последней строки полным перебором записей DimaBrв принципе неважно какие действия проводятся в тестекладезь мудрости DimaBrглавное что при разном доступе к данным значительно падает времязолотые слова, скажу больше, повторюсь что время падает тем значительнее чем более разный доступ к данным в смысле от датасета зависит, вопреки некоторым утверждениям и уже на моем тесте и заказанном кол-ве записей скорость совпадает с "прямым" доступом в датаконтроллер. хотя разумеется чем больше будет записей тем медленнее станет поиск в датасете. но и датасет ведь в тесте не самый быстрый DimaBrдавайте посмотрим на ваш тествот и я говорю, давайте, вдруг я где попутал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:23 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
AriochКакая разница как долго ищет запись гридконтроллер если он ее все равно ищет ?да не ищет он ее в штатном варианте вовсе, он просто берет готовые значения. ищет у меня. но у меня по памяти эффективнее, а скорость может оказаться как быстрее так и медленнее, зависит от AriochТы сказал, что это чушь и про эту эффективность надо думтаья все время толкую об эффективности в разрезе потребляемой памяти а ты воюешь с ветряными мельницами AriochНастоящие тормза пойдут тамтормоза пойдут везде где исполняется массовая обработка датасета без деактивации подвязанной гуйни. но никто ж не заставляет творить такую порнографию?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 15:31 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
Всё равно, ваш метод медленее Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 16:33 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
ну на, отключай http://rghost.ru/40340676 инетресно, как быстро у тебя получится заменить примитивный обработчик в пару строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 16:37 |
|
||
|
Разукрасить ячейку в cxGrid
|
|||
|---|---|---|---|
|
#18+
DimaBrВсё равно, ваш метод медленеепродолжай учиться и работать над собой Ariochотключайэто ты мне? что "отключать"? Ariochкак быстро у тебя получится заменить примитивный обработчик в пару строкты вообще ничему не учишься? в FormCreate добавить после цикла Код: pascal 1. 2. а в xgrdGrid1DBTableView1CustomDrawCell первые 9 строк твоей порнографии заменить на две Код: pascal 1. 2. зы. если уж удосужился тесты делать будь любезен излагать внятно что ты демонстрируешь и на что я должен обратить внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2012, 17:04 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=37956218&tid=2040388]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
185ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 538ms |

| 0 / 0 |
