Страница: 1 |
Вопрос: Скорость фейса и оконные сообщения | Добавлено: 20.06.05 19:20 |
Автор вопроса: ![]() |
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством: Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая. Т.е. он типа может быстрее, но специально у меня на нервах играет?! 8( Можно ли как-нибудь настроить всю среду на более быструю работу? Вопрос №2: В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами. |
Ответы | Всего ответов: 13 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #1 | Добавлено: 20.06.05 21:07 |
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством: Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая. Какая версия VS .NET? Какой компьютер? Я с такими прблемами никогда не сталкивался. Согласен, редактор не особо шустрый (по сравнению с VB6), но все практически в допустимых пределах. Вопрос №2:
В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами. Переопределяешь процедуру WndProc и флаг в руки. Только зачем на .NET так извращаться? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 20.06.05 22:52 |
Имею VS.NET 2003 на Cel-1.7GHz. Периодически безбожно тормозит, особенно после нескольких компиляций хоть сколь-нибудь большого проекта, что лишний раз доказывает, что "победители Java" не умеют бороться даже с элементарными memory leaks |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 20.06.05 22:57 |
Версия, выдранная из эбаута:
Microsoft Visual Basic .NET 69586-335-0000007-18917 А наскока помню при установке пелось про Enterprise... Особенно хорошо тормоза видны, если сделать следующее (не знаю обязательны ли все пункты, но много экпериментировать счас влом - не хочу потерять интерес к кодингу): Размещаем элементы MainMenu и ContextMenu. Вписываем и туда и туда чего-нить. Потом при выделении контекстного, прежде чем можно будет начать редактировать менюшку происходит первый заметный подвисон. Второй наступает при снятии выделения с этого контекстного меню (типа закончил редактировать) - этот вообще конретный, секунды на три. Да и вообще есть куча мест, где более-менее заметно подвисает - просто это наиболее меня достало. Комп, конечно, не первой свежести: Пень - 2400B Память - 256 (частоту уже не помню) Видуха - 64 четвёрка. > Переопределяешь процедуру WndProc и флаг в руки. Это разве не называется сабклассингом? В общем, если это подразумевает GetWindowLong и SetWindowLong, то я думаю, что здесь особо от шестого отличий нет и наверное я смогу это сделать. Но вот в дельфях я видел строчку по смыслу означающую "сообщения под номером 533 (uMsg), преобразовывать в событие MyEvent" и потом с этим сообщением можно было работать как и с любым другим событием (Load, Activate, MouseUp...). Писалось где-то в заголовке формы. На мой взгляд очень удобная фенька. Несколько позже, копаясь в каких-то сишных сырцах под MFC, я увидел что-то типа этого, но тогда мне было не до этого. Счас мне собс-на на сях-то и не надо - VB.Net осваиваю. Если очень надо, то могу нарыть у себя кусок дельфового сырца... > Только зачем на .NET так извращаться? Ну я только первый день кодю на нём. Хотелось замутить что-то васюковое и при этом то, чего я не мог сделать на шестом. Ответ - многопоточное приложение. Начал делать блокнот, у которого при первом запуске загружается основная часть, а потом только создаёшь новые окна под открываемые документы. Таким образом скрадываю недостаток NET'а - скорость запуска. Однако, если ассоциировать какое-нибудь расширение с этой прогой, не избежать самой долгой части открытия документа - открытия этого самого приложения, за которым будет следовать быстрая передача командной строки в основную прогу и закрытие второй копии. Поэтому я решил написать маленькую прогу на сях, которая будет тока передавать командную строку в моё приложение на Net'е. Хэндл главного окна я думал хранить в реестре, а передачу командной строки осуществлять через оконные сообщения (счас вот подумал делать это прямо через реестр - выделить поток, который бы ждал изменения значения в реестре и при изменении воспринимал это как новый файл, но это уже потом как-нибудь). И вот задача поймать оконное сообщение в нетвасе. Конечно, прога напоминает попытку почесать правое ухо левой пяткой, но сейчас больше ничего в голову не лезет, а быстрый блокнот мне уже давно нужен (дефолтовый довольно быстрый, но эти его ограничения и отсутствие покусочного открытия - косяк). К тому же - надо что-то написать чтоб научиться. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 21.06.05 00:01 |
Нашёл!
Пасиб! Это я про WndProc... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #5 | Добавлено: 21.06.05 00:20 |
Имею VS.NET 2003 на Cel-1.7GHz. Периодически безбожно тормозит, особенно после нескольких компиляций хоть сколь-нибудь большого проекта, что лишний раз доказывает, что "победители Java" не умеют бороться даже с элементарными memory leaks
Примерно 6 месяцев работал с VS .NET 2003 на Athlon 2000, 512 MB RAM. Никаких тормозов я не замечал. Единственное, что очень напрягало - это, конечно, работа с веб-приложениями, там да, запуск выполнялся нешустро, но там это объяснимо. Что касается беспомощности победителей Java... Я уже давненько не работал с VS 2003, поэтому буду говорить за 2005, 2-ю бету. Компьютер не выключался ~неделю, все время была запущена VS 2005, в ней поочередно открывались различные проекты различных типов (начиная с веб-приложений, заканчивая офисными), никаких тормозов обнаружено не было - скорость работы находилась в допустимых пределах. Машина та же: Athlon 2000, 512 MB RAM. Сори, но мне в свое время пришлось немного поработать на программе, написанной на Java - уже от этого у меня начали возникать довольно нехорошие чувства, я, конечно, не сомневаюсь, что memory leaks там не было, но все равно в скорости работы даже VS .NET выигрывала у этого "приложения". |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #6 | Добавлено: 21.06.05 00:30 |
Microsoft Visual Basic .NET 69586-335-0000007-18917
Сори, но цифры мне эти ни о чем не говорят, меня больше интерисует версия VS .NET (хотя, судя по дальнейшему тексту сообщения я понял, что речь идет о VS 2003). Особенно хорошо тормоза видны, если сделать следующее (не знаю обязательны ли все пункты, но много экпериментировать счас влом - не хочу потерять интерес к кодингу):
<.....> Повторил несколько раз описанные процедуры - никаких задержек, все выполняется практически мгновенно. При этом у меня еще запущенно несколько довольно ресурсоемких процессов: VS .NET 2005, MSDN, SQL Management Studio, 2 инстанции SQL Server 2005(Express и CTP). Комп, конечно, не первой свежести:
Пень - 2400B Память - 256 (частоту уже не помню) Видуха - 64 четвёрка. Не знаю... Я склоняюсь к мнению, что для VS .NET на машине должно быть 512 памяти, но это мое личное мнение... Попробуй, конечно, поставить 512, оценить скорость работы, но еще неплохо бы поискать возможные причины и с самой ОС. Для справки: у меня Windows Server 2003. Это разве не называется сабклассингом?
Формально это не субклассинг. Но вот в дельфях я видел строчку по смыслу означающую "сообщения под номером 533 (uMsg), преобразовывать в событие MyEvent" и потом с этим сообщением можно было работать как и с любым другим событием (Load, Activate, MouseUp...).
Понял, в .NET такого нет - можно разве что самому написать обработку этого сообщения и генерировать соответствующее событие. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 325 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 22.06.05 14:44 |
Разница между 256 и 512 колоссальная
Между 512 и 1024 практически никакой - только бабки на ветер. Нехилые причем ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #8 | Добавлено: 22.06.05 14:46 |
Между 512 и 1024 практически никакой
Не скажи... я вот на серваке с 512 на 1024 перешел - ещё какая разница ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 325 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 22.06.05 14:52 |
2 UU
Да у меня ноутбук. А чего у тебя там крутится? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #10 | Добавлено: 22.06.05 14:56 |
Gentoo: samba, squid, netatalk, ntpd, clamav, iptables, pure-ftpd, 3proxy, monkeyd ну и так.. по мелочи.. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 325 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 22.06.05 15:03 |
2 UU
Gentoo
Вроде про VS говорили Или ты ее из портов собрал ![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #12 | Добавлено: 22.06.05 15:05 |
Я про разницу между 512 и 1024 говорил...
А винде я пишу (если пишу) только в PrimalCode.. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 26 Ответов: 325 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 22.06.05 20:15 |
А винде я пишу (если пишу) только в
PrimalCode.. Так ведь денежков стоит ![]() |
Страница: 1 |
|