End With по требованию06.10.2024, 08:52. Показов 3297. Ответов 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
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
|
||||||||
| 20.11.2024, 10:26 | ||||||||
![]() Смотри
Запускаем из среды разработки - да, действительно, код с With работает быстрее, хоть и не намного. А теперь компилируем (все оптимизации по умолчанию), запускаем exe, и ситуация в корне меняется - код без With работает почти в два раза быстрее. И вся тема летит в трубу ![]()
1
|
||||||||
|
dive
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
|
|
| 20.11.2024, 10:44 | |
|
1
|
|
| 20.11.2024, 10:53 [ТС] | |
|
I can, это может быть ситуация которую оптимизирует компилятор в одном случае, а в другом не оптимизирует. Я раньше делал не рекурсивный q-sort и в нем with давал небольшое преимушество. Чуть позже скину ссылку.
Добавлено через 2 минуты Вопрос конечно есть, как работает with как ранее ли связывание или как-то по особому.
0
|
|
|
dive
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
|
||
| 20.11.2024, 10:53 | ||
|
1
|
||
| 20.11.2024, 12:10 [ТС] | ||
|
В Твин-бейсике with уже можно исполтзовать для разименования указателя вроде.
Добавлено через 1 час 15 минут
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 20.11.2024, 12:22 | |||
|
странно
Добавлено через 1 минуту Человеческий глаз даже не воспринимает и не успеет заметить процессы которые произошли быстрее чем 42млск Добавлено через 8 минут
1
|
|||
| 20.11.2024, 12:32 [ТС] | ||||
|
Добавлено через 5 минут
0
|
||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 20.11.2024, 12:51 | ||
|
Добавлено через 4 минуты В книге Стив Брауна тоже писали что мол With помогает увеличить производительность и скорость работы программы, но это было в конце 90-ых, в начале двухтысячных может оно так и было тогда раньше на медленных процессорах...
0
|
||
|
dive
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,977
|
||
| 20.11.2024, 12:53 | ||
|
2
|
||
|
Вернулся
1748 / 644 / 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
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 20.11.2024, 14:33 | |
|
testuser2, ну проверил я твой пример. Без With быстрее.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 20.11.2024, 14:33 | |
|
Вот смотри
0
|
|
| 20.11.2024, 14:34 [ТС] | ||||||||||||
Кликните здесь для просмотра всего текста
0
|
||||||||||||
|
Вернулся
1748 / 644 / 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
|
|
|
Вернулся
1748 / 644 / 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
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||
| 20.11.2024, 16:11 | |||
|
Добавлено через 51 секунду Короче забудь про With раз и навсегда
0
|
|||
| 20.11.2024, 16:11 | |
|
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) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|