Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Скорость фейса и оконные сообщения Добавлено: 20.06.05 19:20  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством:
Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая.

Т.е. он типа может быстрее, но специально у меня на нервах играет?! 8(
Можно ли как-нибудь настроить всю среду на более быструю работу?

Вопрос №2:
В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 20.06.05 21:07
Вопрос №1:
Исследую VB.NET и столкнулся с таким неудобством:
Переключаясь между редактором кода и редактором окон, либо же просто выделяя различные элекменты на форме во время её редактирования, я заметил (особо напрягаться, чтобы "заметить" не пришлось), что весь редактор подвисает. А ещё чуть позже я посмотрел какая при этом загрузка проца и увидел, что практически нулевая.

Какая версия VS .NET?
Какой компьютер?

Я с такими прблемами никогда не сталкивался.
Согласен, редактор не особо шустрый (по сравнению с VB6), но все практически в допустимых пределах.

Вопрос №2:
В дельфях я видел такую феньку как переозначение произвольного оконного сообщения в событие. Как (и возможно ли) такое осуществить в VB.NET? Несмотря на то, что сабклассинг здесь, наверное, должен проходить более безболезненно, мне хочется пока поработать со стандартными средствами.

Переопределяешь процедуру WndProc и флаг в руки.
Только зачем на .NET так извращаться?

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 20.06.05 22:52
Имею VS.NET 2003 на Cel-1.7GHz. Периодически безбожно тормозит, особенно после нескольких компиляций хоть сколь-нибудь большого проекта, что лишний раз доказывает, что "победители Java" не умеют бороться даже с элементарными memory leaks

Ответить

Номер ответа: 3
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #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
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #4
Добавлено: 21.06.05 00:01
Нашёл!
Пасиб!
Это я про WndProc...

Ответить

Номер ответа: 5
Автор ответа:
 Artyom



Разработчик

Вопросов: 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
Автор ответа:
 Artyom



Разработчик

Вопросов: 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
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #7
Добавлено: 22.06.05 14:44
Разница между 256 и 512 колоссальная
Между 512 и 1024 практически никакой - только бабки на ветер. Нехилые причем :(

Ответить

Номер ответа: 8
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #8 Добавлено: 22.06.05 14:46
Между 512 и 1024 практически никакой

Не скажи... я вот на серваке с 512 на 1024 перешел - ещё какая разница;)

Ответить

Номер ответа: 9
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #9
Добавлено: 22.06.05 14:52
2 UU
Да у меня ноутбук.

А чего у тебя там крутится?

Ответить

Номер ответа: 10
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #10 Добавлено: 22.06.05 14:56
Gentoo: samba, squid, netatalk, ntpd, clamav, iptables, pure-ftpd, 3proxy, monkeyd ну и так.. по мелочи..

Ответить

Номер ответа: 11
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #11
Добавлено: 22.06.05 15:03
2 UU
Gentoo


Вроде про VS говорили

Или ты ее из портов собрал :)

Ответить

Номер ответа: 12
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #12 Добавлено: 22.06.05 15:05
Я про разницу между 512 и 1024 говорил...
А винде я пишу (если пишу) только в PrimalCode..

Ответить

Номер ответа: 13
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #13
Добавлено: 22.06.05 20:15
А винде я пишу (если пишу) только в
PrimalCode..


Так ведь денежков стоит :(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам