Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 27.05.10 16:05
Оценка:
Всем привет!

Решил написать Nemerle версию NerdDinner'а. В основном для себя, чтобы поближе с языком познакомиться. Если реализация будет близка к конечному результату, то можно будет и выложить для примера.

Так вот, столкнулся с проблемой — студия почему-то постоянно отжирает себе одно из 4х ядер процессора, как вовремя компиляции, так и вовремя разработки. Количество отъедаемой памяти при этом бытро растёт, пока компилятор не вываливается с OutOfMemoryException.

Что-либо делать в таких условиях реально сложно, тем более что языка то ещё толком не знаю.
Может подскажите, куда копать?
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 27.05.10 16:09
Оценка:
Забыл добавить описание системы.

Win7 32bit, 4gb ram, VS2008 SP1, версия nemerle: 1.0.0.8879

ММ>Всем привет!


ММ>Решил написать Nemerle версию NerdDinner'а. В основном для себя, чтобы поближе с языком познакомиться. Если реализация будет близка к конечному результату, то можно будет и выложить для примера.


ММ>Так вот, столкнулся с проблемой — студия почему-то постоянно отжирает себе одно из 4х ядер процессора, как вовремя компиляции, так и вовремя разработки. Количество отъедаемой памяти при этом бытро растёт, пока компилятор не вываливается с OutOfMemoryException.


ММ>Что-либо делать в таких условиях реально сложно, тем более что языка то ещё толком не знаю.

ММ>Может подскажите, куда копать?
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re: Проблема с интеграцией, компилятор "ест" память
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.10 16:15
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Так вот, столкнулся с проблемой — студия почему-то постоянно отжирает себе одно из 4х ядер процессора, как вовремя компиляции, так и вовремя разработки. Количество отъедаемой памяти при этом бытро растёт, пока компилятор не вываливается с OutOfMemoryException.


Ситуация воспроизводится?

Можно сформировать минимальный пример ее воспроизводящий?

Если да, то создай запись в багтрекере и добавть атачем туда свой проект (с описанием как его воспроизвести), ну, или опиши здесь.

Если я смогу воспроизвести ситуацию, то поправлю баг.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Проблема с интеграцией, компилятор "ест" память
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.10 16:21
Оценка:
Да... багтрекер тут: http://nemerle.org/bugs/bug_report_page.php
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 27.05.10 16:43
Оценка:
Добавил: http://nemerle.rsdn.ru/bugs/view.php?id=1230

Проблема судя по всему в Entity Framework, который я использую для доступа к данным (через отдельный class library проект).
Как только я добавляю код, в котором есть доступ к данным через ObjectQuery, компилятор вешается.

Здравствуйте, VladD2, Вы писали:

VD>Да... багтрекер тут: http://nemerle.org/bugs/bug_report_page.php
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Проблема с интеграцией, компилятор "ест" память
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.10 17:42
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Добавил: http://nemerle.rsdn.ru/bugs/view.php?id=1230


ММ>Проблема судя по всему в Entity Framework, который я использую для доступа к данным (через отдельный class library проект).

ММ>Как только я добавляю код, в котором есть доступ к данным через ObjectQuery, компилятор вешается.

ОК. Если получится запустить приатаченый проект, то постараюсь поправить этот баг.

ЗЫ

Для доступа к данным, на мой взгляд, лучше использовать BLToolkit.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 03:33
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Решил написать Nemerle версию NerdDinner'а. В основном для себя, чтобы поближе с языком познакомиться. Если реализация будет близка к конечному результату, то можно будет и выложить для примера.


Не сочти за рекламу А может сразу на nrails? Там из коробки будет работа с базой, тулкит и spark view engine. Плюс простая передача данных из контроллера во view. Плюс адресация экшенов в стиле MVC.Home.Index(). Вобщем многие вещи которыми nemerle может облегчить жизнь в ASP.NET MVC.
Re[2]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 06:36
Оценка:
Ну я, в общем, только за. Задачу себе поставил написать NerdDinner — Nemerle Way. Если считаешь, что nrails можно уже назвать так назвать, то почему бы и нет.
Последний код брать отсюда, я правильно понимаю? http://code.google.com/p/nemerleonrails/source/checkout
Если есть какие-то тонкости в установке/интеграции, напиши плз, если не сложно.

Спасибо.

Здравствуйте, Ziaw, Вы писали:

Z>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Решил написать Nemerle версию NerdDinner'а. В основном для себя, чтобы поближе с языком познакомиться. Если реализация будет близка к конечному результату, то можно будет и выложить для примера.


Z>Не сочти за рекламу А может сразу на nrails? Там из коробки будет работа с базой, тулкит и spark view engine. Плюс простая передача данных из контроллера во view. Плюс адресация экшенов в стиле MVC.Home.Index(). Вобщем многие вещи которыми nemerle может облегчить жизнь в ASP.NET MVC.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[3]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 06:51
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Ну я, в общем, только за. Задачу себе поставил написать NerdDinner — Nemerle Way. Если считаешь, что nrails можно уже назвать так назвать, то почему бы и нет.

ММ>Последний код брать отсюда, я правильно понимаю? http://code.google.com/p/nemerleonrails/source/checkout
ММ>Если есть какие-то тонкости в установке/интеграции, напиши плз, если не сложно.

К сожалению пока нет шаблона для проекта. Так что придется скопировать NRails.Demo, поудалять оттуда тестовые модели (Db это менеджер, его надо оставить) и миграции. Исправить строку подключения в web.config.

Если в качестве движка планируется использовать спарк — лучше поставить его интеграцию, хотя она будет считать, что код на C#. Можно и без интеграции, просто открывать шаблоны как html.

На этом все, можно создавать миграции для создания БД, модели, контроллеры, вьюхи.
Re[3]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 07:00
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Если есть какие-то тонкости в установке/интеграции, напиши плз, если не сложно.


Еще тонкость, студия падает на mvc'шных вьюхах, решение тут: http://rsdn.ru/forum/prj.nemerle/3815128.1.aspx
Автор: Ziaw
Дата: 21.05.10
Re[4]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 09:20
Оценка:
Так, базу сделал, миграцию запустил, база нормально создалась.
При компиляции пишет:
Doctor model error: System.Exception: table Doctor not found, env: 'Development'

Про остальные модели то же самое.

NRails.Development connectionstring точно обновил, так что с этим проблем не должно быть.

Извиняюсь, если вопросы детские, просто пока что реально сложно решать проблемы, не понимая что и откуда идёт.

Z>К сожалению пока нет шаблона для проекта. Так что придется скопировать NRails.Demo, поудалять оттуда тестовые модели (Db это менеджер, его надо оставить) и миграции. Исправить строку подключения в web.config.


Z>Если в качестве движка планируется использовать спарк — лучше поставить его интеграцию, хотя она будет считать, что код на C#. Можно и без интеграции, просто открывать шаблоны как html.


Z>На этом все, можно создавать миграции для создания БД, модели, контроллеры, вьюхи.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[4]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 09:39
Оценка:
Куда билдятся и на каком этапе временные классы для спарк вьюшек?
А то я вроде меняю модель внутри вьюхи, а простой build не перебилживает и из-за этого компайл тайм ошибка. Приходится полный rebuild делать.

Вообще, где лучше всего задавать такие нубские вопросы? Здесь в ветке или куда-то в другое место двинуть?

Z>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Ну я, в общем, только за. Задачу себе поставил написать NerdDinner — Nemerle Way. Если считаешь, что nrails можно уже назвать так назвать, то почему бы и нет.

ММ>>Последний код брать отсюда, я правильно понимаю? http://code.google.com/p/nemerleonrails/source/checkout
ММ>>Если есть какие-то тонкости в установке/интеграции, напиши плз, если не сложно.

Z>К сожалению пока нет шаблона для проекта. Так что придется скопировать NRails.Demo, поудалять оттуда тестовые модели (Db это менеджер, его надо оставить) и миграции. Исправить строку подключения в web.config.


Z>Если в качестве движка планируется использовать спарк — лучше поставить его интеграцию, хотя она будет считать, что код на C#. Можно и без интеграции, просто открывать шаблоны как html.


Z>На этом все, можно создавать миграции для создания БД, модели, контроллеры, вьюхи.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[5]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 10:10
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Так, базу сделал, миграцию запустил, база нормально создалась.

ММ>При компиляции пишет:
ММ>Doctor model error: System.Exception: table Doctor not found, env: 'Development'

ММ>Про остальные модели то же самое.


Т.е. в базе есть таблица Doctor, а компиляция не проходит? Странно, возможно кеширование схемы в интелисенс режиме. Билд при этом выдает ошибки в окне output?
Re[5]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 10:13
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Куда билдятся и на каком этапе временные классы для спарк вьюшек?

ММ>А то я вроде меняю модель внутри вьюхи, а простой build не перебилживает и из-за этого компайл тайм ошибка. Приходится полный rebuild делать.

Вообще вьюшки компилятся в рантайме. По первому запросу или после изменения. Интеграция спарка их пробует компилить как сишарпные для интелисенса, но это она от незнания. Пока на ошибки показываемые интеграцией надо забивать.

ММ>Вообще, где лучше всего задавать такие нубские вопросы? Здесь в ветке или куда-то в другое место двинуть?


Пока здесь, потом наверное надо будет просить отдельный форум.
Re[5]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 10:18
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Вообще, где лучше всего задавать такие нубские вопросы? Здесь в ветке или куда-то в другое место двинуть?


Вообще, нрельсы еще не использовалась ни в одном проекте, я только начинаю сейчас проект на них Решай сам, интересно ли тебе быть первопроходцем. Со своей стороны обещаю исправлять все ошибки как можно быстрее.
Re[6]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 10:57
Оценка:
Ёлки палки, я до самого низа докопал функционал доставания схемы. Повсюду кидал эксепшены, чтобы хоть какую-то дебаг информацию получать
Выходило, что при компиляции таблицы в схеме были, но тем не менее в Error List ошибка оставалась.
Так что ты прав, всё дело было в кеше интеллисенса. Есть какой-то способ его сбросить, не рестартуя студию?

Z>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Так, базу сделал, миграцию запустил, база нормально создалась.

ММ>>При компиляции пишет:
ММ>>Doctor model error: System.Exception: table Doctor not found, env: 'Development'

ММ>>Про остальные модели то же самое.


Z>Т.е. в базе есть таблица Doctor, а компиляция не проходит? Странно, возможно кеширование схемы в интелисенс режиме. Билд при этом выдает ошибки в окне output?
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[6]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 10:59
Оценка:
Да мне, собственно, тоже пока не для проекта. Как раз-таки хочется самому покопаться, а если повезёт, то и другим помочь.
Поэтому, собственно, и решил начать с НёрдДиннера, чтобы найти все узкие места или наоборот преимущества.

Z>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Вообще, где лучше всего задавать такие нубские вопросы? Здесь в ветке или куда-то в другое место двинуть?


Z>Вообще, нрельсы еще не использовалась ни в одном проекте, я только начинаю сейчас проект на них Решай сам, интересно ли тебе быть первопроходцем. Со своей стороны обещаю исправлять все ошибки как можно быстрее.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[4]: Проблема с интеграцией, компилятор "ест" память
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.05.10 11:42
Оценка: 1 (1) +1
Здравствуйте, Ziaw, Вы писали:

Z>К сожалению пока нет шаблона для проекта. Так что придется скопировать NRails.Demo, поудалять оттуда...


Может, настала пора сделать шаблон проекта? Раз у твоего продукта первые пользователи появляются?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Проблема с интеграцией, компилятор "ест" память
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 28.05.10 12:05
Оценка:
Нашёл первый баг. Когда генерируется тело Action через parametrizedMethod, то в конце ты не возвращаешь NRActionResult.
Поэтому вылезает ошибка в стиле 'cannot convert void to INRActionResult'.

я просто заменил:
..$parametrizedBody;
на:
..$(parametrizedBody.Append([<[ r; ]>]));

Теперь всё окей.

Z>Здравствуйте, Маслаков Михаил, Вы писали:


ММ>>Вообще, где лучше всего задавать такие нубские вопросы? Здесь в ветке или куда-то в другое место двинуть?


Z>Вообще, нрельсы еще не использовалась ни в одном проекте, я только начинаю сейчас проект на них Решай сам, интересно ли тебе быть первопроходцем. Со своей стороны обещаю исправлять все ошибки как можно быстрее.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
Re[7]: Проблема с интеграцией, компилятор "ест" память
От: Ziaw Россия  
Дата: 28.05.10 14:05
Оценка:
Здравствуйте, Маслаков Михаил, Вы писали:

ММ>Нашёл первый баг. Когда генерируется тело Action через parametrizedMethod, то в конце ты не возвращаешь NRActionResult.

ММ>Поэтому вылезает ошибка в стиле 'cannot convert void to INRActionResult'.

ММ>я просто заменил:

ММ>..$parametrizedBody;
ММ>на:
ММ>..$(parametrizedBody.Append([<[ r; ]>]));

ММ>Теперь всё окей.


Ага ) Я тоже сегодня это нашел и исправил, только не комитил еще. Там еще баг, к каждому перегруженному методу генерится свой метод без параметров. Они конфликтуют. Это тоже просто лечится, но еще одна проблема уже совсем не простая, когда начинаешь активно менять экшены интеграция запускает этот макрос несколько раз, вобщем я еще не совсем разобрался чем и как это лечить.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.