End With по требованию06.10.2024, 08:52. Показов 3199. Ответов 52
Метки нет (Все метки)
В одном коде надо было перебирать элементы массива UDT и при определенных условиях "выпрыгнуть" из цикла, а после цикла при определенных условиях происходит редим этого массива, но обнаружилась одна проблемка с использованием оператора With в таком сценарии. Упрощенно проблемму можно воспроизвести таким кодом
0
|
||||||
| 06.10.2024, 08:52 | |
|
Ответы с готовыми решениями:
52
Требуется Web-разработчик (Front end/Back end) Санкт-Петербург Java Developer (front-end + back-end); Chicago,IL; H1B Sponsorship is available! |
|
dive
4974 / 4676 / 848
Регистрация: 13.04.2015
Сообщений: 9,886
|
||||||||
| 20.11.2024, 10:26 | ||||||||
![]() Смотри
Запускаем из среды разработки - да, действительно, код с With работает быстрее, хоть и не намного. А теперь компилируем (все оптимизации по умолчанию), запускаем exe, и ситуация в корне меняется - код без With работает почти в два раза быстрее. И вся тема летит в трубу ![]()
1
|
||||||||
|
dive
4974 / 4676 / 848
Регистрация: 13.04.2015
Сообщений: 9,886
|
|
| 20.11.2024, 10:44 | |
|
1
|
|
| 20.11.2024, 10:53 [ТС] | |
|
I can, это может быть ситуация которую оптимизирует компилятор в одном случае, а в другом не оптимизирует. Я раньше делал не рекурсивный q-sort и в нем with давал небольшое преимушество. Чуть позже скину ссылку.
Добавлено через 2 минуты Вопрос конечно есть, как работает with как ранее ли связывание или как-то по особому.
0
|
|
|
dive
4974 / 4676 / 848
Регистрация: 13.04.2015
Сообщений: 9,886
|
||
| 20.11.2024, 10:53 | ||
|
1
|
||
| 20.11.2024, 12:10 [ТС] | ||
|
В Твин-бейсике with уже можно исполтзовать для разименования указателя вроде.
Добавлено через 1 час 15 минут
0
|
||
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 20.11.2024, 12:22 | |||
|
странно
Добавлено через 1 минуту Человеческий глаз даже не воспринимает и не успеет заметить процессы которые произошли быстрее чем 42млск Добавлено через 8 минут
1
|
|||
| 20.11.2024, 12:32 [ТС] | ||||
|
Добавлено через 5 минут
0
|
||||
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 20.11.2024, 12:51 | ||
|
Добавлено через 4 минуты В книге Стив Брауна тоже писали что мол With помогает увеличить производительность и скорость работы программы, но это было в конце 90-ых, в начале двухтысячных может оно так и было тогда раньше на медленных процессорах...
0
|
||
|
dive
4974 / 4676 / 848
Регистрация: 13.04.2015
Сообщений: 9,886
|
||
| 20.11.2024, 12:53 | ||
|
2
|
||
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 20.11.2024, 12:56 | |
|
Ну а сегодня, благодаря уважаемому I can мы уже видим совсем обратный эффект. Итак я провёл тесты которые нам предложил I can. И что мы видим!? В IDE (первый скрин) вместе с With скорость 0,64, без With скорость 0,68, тут даже человеческий глаз не успел бы заметить что этот процесс в IDE происходит чуть-чуть быстрее. Но вот в EXE становится даже медленнее вместе с With уже 0,17 а без With стало быстрее 0,07!!!
1
|
|
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 20.11.2024, 14:33 | |
|
testuser2, ну проверил я твой пример. Без With быстрее.
0
|
|
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 20.11.2024, 14:33 | |
|
Вот смотри
0
|
|
| 20.11.2024, 14:34 [ТС] | ||||||||||||
Кликните здесь для просмотра всего текста
0
|
||||||||||||
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||||
| 20.11.2024, 14:47 | |||||
|
Делаем вывод, что With - это совершенно ненужная вещь вообще, только разве что для красоты. А скорости With не прибавляет.
Добавлено через 11 секунд Добавлено через 11 минут Добавлено через 33 секунды
0
|
|||||
| 20.11.2024, 14:50 [ТС] | |
|
Компиляция делает что-то не так, With должен быть быстрее, но разница в скорости микроскопическая на самом деле. Мой пример тоже может быть не достаточно корректен. Нужно тестировать на чем-то реальном. Я кидал ссылку на q-sort, но мне лень проверять.
0
|
|
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 20.11.2024, 15:07 | |||
|
Я вообще не понимаю почему ты так помешан на With? Он ведь только замедляет работу в EXE Да, раньше в учебниках по Visual Basic писали что с With код работает быстрее, и я не думаю, что нам тогда лгали в то время в начале двухтысячных годов на слабых компьютерах и на слабых процессорах, скорее всего код вместе с With и правда работал быстрее. Теперь он стал медленнее. Я ни первый раз такое уже вижу, есть и другие у меня примеры где раньше в начале двухтысячных код работал быстрее на слабых старых компах, а теперь этот код уже стал медленнее на современных и мощных компьютерах. Добавлено через 3 минуты Как бы объяснить. Вот например есть много встроенных функций в VB6 такие как Mid$ например или LCase во времена Windows 98 и слабых старых компьютеров эти коды Mid и LCase в VB6 работали медленнее чем аналоги в АПИ и всякие другие скрипты, а теперь эти функции работают быстрее за счёт того что у всех у нас теперь мощные многоядерные процессоры. Добавлено через 5 минут Я помню как был пример от Microsoft 98 года где показывалось что CopyMemory работает быстрее чем Mid. И это было в 98 году правдой. Теперь уже Mid работает быстрее. В том же майкрософтовском примере. Добавлено через 2 минуты И кстати, забыл сказать, если включить эти наши тесты на старом компе типа Pentium II то, скорее всего, с With будет работать быстрее. Я думаю, что это для слабых старых компьютеров будет правдой.
0
|
|||
| 20.11.2024, 16:07 [ТС] | ||
|
Добавлено через 39 минут Нашел этот пример, и в правду Mid быстрее, даже чем vbaCopyBytes и даже в Твин-бейские. Это чертово не понятное дерьмо.
0
|
||
|
Вернулся
1747 / 643 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 20.11.2024, 16:11 | |||
|
Добавлено через 51 секунду Короче забудь про With раз и навсегда
0
|
|||
| 20.11.2024, 16:11 | |
|
Помогаю со студенческими работами здесь
40
Syntax error unexpected $end and premature end-of-file единственный варнинг Ведущие разработчики .NET (C#) Front-end и Back-end (Москва, не аутсорс)
With myChart With .Axes(xlCategory) .CategoryType = xlTimeScale .BaseUnit = xlseconds End With End With Работа в Германии (Front-End, Back-End или Full-Stack) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|