End With по требованию06.10.2024, 08:52. Показов 3288. Ответов 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 / 4741 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||||||||
| 20.11.2024, 10:26 | ||||||||
![]() Смотри
Запускаем из среды разработки - да, действительно, код с With работает быстрее, хоть и не намного. А теперь компилируем (все оптимизации по умолчанию), запускаем exe, и ситуация в корне меняется - код без With работает почти в два раза быстрее. И вся тема летит в трубу ![]()
1
|
||||||||
|
dive
4990 / 4741 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
|
| 20.11.2024, 10:44 | |
|
1
|
|
| 20.11.2024, 10:53 [ТС] | |
|
I can, это может быть ситуация которую оптимизирует компилятор в одном случае, а в другом не оптимизирует. Я раньше делал не рекурсивный q-sort и в нем with давал небольшое преимушество. Чуть позже скину ссылку.
Добавлено через 2 минуты Вопрос конечно есть, как работает with как ранее ли связывание или как-то по особому.
0
|
|
|
dive
4990 / 4741 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||
| 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 / 4741 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||
| 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) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли
Введение: Экологический рынок как игра с нулевой суммой
Традиционная экология долгое время. . .
|
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ
Введение: Синдром «цифрового учебника»
Современные большие языковые модели (LLM) обладают колоссальным. . .
|