Re[22]: Qt vs .NET - как считаете?
От: Sheridan Россия  
Дата: 12.05.06 06:04
Оценка:
Здравствуйте, ironwit, Вы писали:

I>Я все еще жду кроссплатформенный янус в котором будет фич побольше чем в текущем и вносится они будут побыстрее

Ну а чтоже ты...
http://sheridan.stavcom.ru/wiki/index.php?n=Main.HomePage
Вливайся может что подскажеж...

[RSDN@Home][1.2.0][alpha][648]
[Личное присутствие вредит славе. [Ф. Петрарка]]
Matrix has you...
Re[23]: Qt vs .NET - как считаете?
От: ironwit Украина  
Дата: 12.05.06 06:28
Оценка:
Здравствуйте, Sheridan, Вы писали:

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


I>>Я все еще жду кроссплатформенный янус в котором будет фич побольше чем в текущем и вносится они будут побыстрее

S>Ну а чтоже ты...
S>http://sheridan.stavcom.ru/wiki/index.php?n=Main.HomePage
S>Вливайся может что подскажеж...
там слова rsdn нет прокси не пустит
... << RSDN@Home 1.2.0 alpha rev. 648>>
Я не умею быть злым, и не хочу быть добрым.
Re[24]: Qt vs .NET - как считаете?
От: Sheridan Россия  
Дата: 12.05.06 06:42
Оценка: 2 (1)
Здравствуйте, ironwit, Вы писали:
I>там слова rsdn нет прокси не пустит
Ссылка
Автор: Sheridan
Дата: 12.05.06

Так прокатит?

[RSDN@Home][1.2.0][alpha][648]
[В глубине всякой груди есть своя змея. [К. Прутков]]
Matrix has you...
Re[23]: Qt vs .NET - как считаете?
От: klapaucius  
Дата: 12.05.06 12:02
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

>> C>Нет эффективного способа передачи value-типов по ссылке.

>> void Foo(ref SomeValueType vt)
>> {
>> }
C>См. выделенное.

>> Ы?

C>Происходит боксирование типа -> аллокация на куче (нет, JIT его не
C>оптимизирует).

Смотри выделенное — не смотри, а никакого боксинга в данном случае не происходит — факт.

>> C>Ну и по мелочам напрягала невозможность наследования и реализации

>> интерфейсов (на незабоксированых типах) — приходилось писать один и тот
>> же код несколько раз для разных типов.
>> void Foo<T>(ref T vt)
>> where T : ISomeInterface
>> {
>> }
>> Ы?
C>См. выделенное.

Здесь — тем более. Я сам проводил замеры и неоднократно. Никакого боксинга и в этом случае не происходит. Причем JIT зачастую инлайнит вызываемый метод, так что по сравнению с вызовом интерфейсного метода выигрыш может быть десятикратным.

>> Или был первый фреймворк?

C>Первый, потом стал второй. Разницы особой нет.

FW 1.1 и FW 2.0 — небо и земля. Лично у меня обратное утверждение автоматически вызывает сомнение в компетентности того, кто, собственно, обратное и утверждает. В данном вопросе, разумеется.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[24]: Qt vs .NET - как считаете?
От: Cyberax Марс  
Дата: 16.05.06 07:53
Оценка:
WolfHound wrote:
> Где здесь боксинг?
Торможу, немного другое имел в виду.

Ладно, вот реальная ситуация:

Стандартный способ задания сеток в трехмерных программах — массив вершин
и массив треугольников. Для алгоритма обработки еще нужно иметь
информацию о соседях каждого треугольника.

На С++ делается примерно так:
struct vertex
{
    vector3 coord; //Координаты
    //Специальные данные.
    float plausibility, angle;
};

struct triangle
{
    vertex *points[3]; //Точки треугольника
    //Соседи треугольника. Алгоритмом гарантируется, что
    //их не больше MAX_NEIGHBOURS (равный 6).
    triangle *neighbours[MAX_NEIGHBOURS];
};


Теперь, как нам это портировать на C#? vector3 и vertex, понятно,
становится val-типами. Но как представить треугольник, не делая его классом?

Мы сделали примерно так:
struct Triangle
{
    public long point1,point2,point3;
    public long tri1,tri2,tri3;
};


При этом point1,point2... становятся индексами, а не указателями. Но не
все точки и треугольники лежат в одном массиве, так что в старшем байте
индекса кодируется еще и индекс массива.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[25]: Qt vs .NET - как считаете?
От: WolfHound  
Дата: 16.05.06 09:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Мы сделали примерно так:

C>
C>struct Triangle
C>{
C>    public long point1,point2,point3;
C>    public long tri1,tri2,tri3;
C>};
C>

А почему long? Разве у вас есть массивы в которых больше int.MaxValue элементов? Сомневаюсь.
И какой смысл в нескольких массивах вертексов?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[26]: Qt vs .NET - как считаете?
От: Cyberax Марс  
Дата: 16.05.06 09:57
Оценка:
WolfHound wrote:
> А почему long? Разве у вас есть массивы в которых больше int.MaxValue
> элементов? Сомневаюсь.
Один байт нужен для индекса массива. И 3 остающихся байт уже совсем
недостаточно.

Размеры, кстати, на некоторых тестах уже подбираются к половине
миллиарда. Так что граница int'а уже не за горами.

> И какой смысл в нескольких массивах вертексов?

Есть изначальный массив вершин (сэмпл размером 10000х10000).

В процессе обработки создаются промежуточные вершины и треугольники. В
исходный массив их пихать нельзя, поэтому они кладутся во временные
массивы. Поэтому и невозможно обойтись единым индексом.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[27]: Qt vs .NET - как считаете?
От: WolfHound  
Дата: 16.05.06 10:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Один байт нужен для индекса массива. И 3 остающихся байт уже совсем недостаточно.

А почему тогда не так:
struct Triangle
{
    public int point1,point2,point3;
    public int tri1,tri2,tri3;
    public byte point1_arr,point2_arr,point3_arr;
    public byte tri1_arr,tri2_arr,tri3_arr;
};

Ы?
Вот мы и сэкономили по 3 байта на индекс.
Итого: 3 * 6 — 2(на выравнивание) = 16 байт экономии на структуру

C>Размеры, кстати, на некоторых тестах уже подбираются к половине миллиарда. Так что граница int'а уже не за горами.

Если перейти границу int то тут уж точно без 64х битной архитектуры не обойтись.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[28]: Qt vs .NET - как считаете?
От: Cyberax Марс  
Дата: 16.05.06 10:32
Оценка:
WolfHound wrote:
> C>Один байт нужен для индекса массива. И 3 остающихся байт уже совсем
> недостаточно.
> А почему тогда не так:
> struct Triangle
> {
> public int point1,point2,point3;
> public int tri1,tri2,tri3;
> public byte point1_arr,point2_arr,point3_arr;
> public byte tri1_arr,tri2_arr,tri3_arr;
> };
> Ы?
Не подумали Хотя мне кажется, что сильно больших улучшений не даст.

> C>Размеры, кстати, на некоторых тестах уже подбираются к половине

> миллиарда. Так что граница int'а уже не за горами.
> Если перейти границу int то тут уж точно без 64х битной архитектуры не
> обойтись.
В 4Гб оно уже не вмешается на C# при больших сэмплах — так что 64 бита
уже в requirements'ах. Версия на С++ намного более эффективна, кстати.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re: Qt vs .NET - как считаете?
От: Cypress  
Дата: 17.05.06 22:09
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Засел я тут на выходных попробовать в кутэ попрограммить...

S>Довольно понравилось... Интерфейс руками накидать — как 2 пальца, отослать чтото из потока кудато еще — как 2 пальца... Технология сигнал-слот вообще супер! Практически все что надо охватывается функциями самой Qt, а это уже реальная кроссплатформенность. В общем мне понравился кутэ. Welcome...

Ну где ты, розовый слоник ?
Re[16]: Qt vs .NET - как считаете?
От: Mace Windu  
Дата: 18.05.06 09:36
Оценка:
Здравствуйте, Вертер, Вы писали:

В>1. может быть дырка между адресами L_0000 и L_0005 так как команда ldstr не занимает 5 байт

Ну да, конечно. однобайтовый опкод + 4-байтный токен строки ну никак не равен 5
В>2. может быть вместо stloc.0 должно быть stloc.1
Для статического метода не может
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[17]: Qt vs .NET - как считаете?
От: Вертер  
Дата: 18.05.06 10:37
Оценка:
Здравствуйте, Mace Windu, Вы писали:

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


В>>1. может быть дырка между адресами L_0000 и L_0005 так как команда ldstr не занимает 5 байт

MW>Ну да, конечно. однобайтовый опкод + 4-байтный токен строки ну никак не равен 5
В>>2. может быть вместо stloc.0 должно быть stloc.1
MW>Для статического метода не может

хм, а почему же -1 то?

Сам же писал, что:

L>Найдешь проблему — поставлю 3 балла.


про остальное — ни слова

В ответ на реплику, я написал: «совсем не селён в IL асме, а тем более в дотНЕТе». Реакция на мою попытку непонятна, ну да ладно...
Re: Qt vs .NET - как считаете?
От: SBOS Россия  
Дата: 24.05.06 18:57
Оценка: +1 :)
Здравствуйте, Sheridan, Вы писали:

S>Засел я тут на выходных попробовать в кутэ попрограммить...

S>Довольно понравилось... Интерфейс руками накидать — как 2 пальца, отослать чтото из потока кудато еще — как 2 пальца... Технология сигнал-слот вообще супер! Практически все что надо охватывается функциями самой Qt, а это уже реальная кроссплатформенность. В общем мне понравился кутэ. Welcome...

Windows Forms для .NET
Qt для C++

Каждому свое. Иначе давайте обсуждать http vs ftp или что-нибудь в этом духе
Re[19]: Qt vs .NET - как считаете?
От: Андрей Хропов Россия  
Дата: 27.05.06 19:38
Оценка:
Здравствуйте, Sheridan, Вы писали:

С>>>RSDN@Home падал меньше, лучше всего работала АТИ-шная приблуда.

WH>>Кстати RSDN@Home лучшее доказательство того что .NET таки рулит ибо
WH>>1)До сих пор нет аналога на С++
S>Проект стартовал и неспеша крутится.
Че-то не открывается.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: Qt vs .NET - как считаете?
От: Demiurg  
Дата: 27.05.06 21:50
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

S>>Проект стартовал и неспеша крутится.

АХ>Че-то не открывается.

Проект оооочень неспеша крутится @linux Призыв
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: Qt vs .NET - как считаете?
От: Sheridan Россия  
Дата: 29.05.06 03:31
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

S>>Проект стартовал и неспеша крутится.

АХ>Че-то не открывается.
Небольшой переезд имел место быть

[RSDN@Home][1.2.0][alpha][651]
[Великий человек обыкновенно губит себя сам. [Б. Франклин]]
Matrix has you...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.