The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Реализация Sqlite на C#. Графический интерфейс для SQLite, opennews (??), 09-Авг-09, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


16. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +1 +/
Сообщение от Аноним (-), 09-Авг-09, 20:57 
> Конечно медленнее, если в С# даже базовые типы (int/float и тп) выступают классами

Ну и в каком месте они классы? Формально - это структуры в терминах дотнета, отличие их от классов (опять же, в терминах дотнета) в том, что последнии как правило создаются в куче, в то время как структуры выделяются на стеке. То, что они инкапсулируют некоторые методы - воспринимайте как конструкцию языка, в остальном это типичные базовые типы, от которых нельзя даже унаследовать свой собственный. Это ограничение сделано как раз по ссображениям производительности.


> А реализация работы со строками на мой взгляд ужасна (класс String), при изменении одного символа в объекте происходит переразпредиление памяти (создается новая строка, а старая удаляется).

Опять глупости вследствие Вашей безграмотности. Когда нужна эффективная работа со строками - используют StringBuilder. Совершенно нормальный подход для скриптового языков.

Ответить | Правка | Наверх | Cообщить модератору

18. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от vitek (??), 09-Авг-09, 22:10 
>Ну и в каком месте они классы? Формально - это структуры в терминах дотнета

а чем структура от класса отличается?

Ответить | Правка | Наверх | Cообщить модератору

19. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +2 +/
Сообщение от ONIX (ok), 09-Авг-09, 23:20 
В структуре свойства и методы по умолчанию со спецификатором public, а в классе privat. Но в шарпе это их не единственное отличие... С C# знаком не долго (3-4 мес.), но после С/С++ на нем писать очень не приятно)))) (Возможно дело привычки)
Ответить | Правка | Наверх | Cообщить модератору

26. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +2 +/
Сообщение от vitek (??), 10-Авг-09, 00:17 
>В структуре свойства и методы по умолчанию со спецификатором public

эти детали не влиябт на размер в памяти... ну и скорость работы соотвественно

Ответить | Правка | Наверх | Cообщить модератору

20. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от Аноним (-), 09-Авг-09, 23:20 
Говорю же, структура создается на стеке. (Хм... интересно, а Nullable-структуры тоже создаются на стеке) Класс имеет ссылочный тип и создается в куче.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

27. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +1 +/
Сообщение от vitek (??), 10-Авг-09, 00:18 
>Говорю же, структура создается на стеке. (Хм... интересно, а Nullable-структуры тоже создаются на стеке) Класс имеет ссылочный тип и создается в куче.

правда что ли?
какой ужас.

Ответить | Правка | Наверх | Cообщить модератору

29. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  –2 +/
Сообщение от Аноним (-), 10-Авг-09, 01:09 
>правда что ли?
>какой ужас.

Не пойму Вас, а что ужасного?

Ответить | Правка | Наверх | Cообщить модератору

31. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +1 +/
Сообщение от vitek (??), 10-Авг-09, 01:17 
>>правда что ли?
>>какой ужас.
>
>Не пойму Вас, а что ужасного?

пруфлинк на то, что структуры создаются в стеке можно?

Ответить | Правка | Наверх | Cообщить модератору

32. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  –1 +/
Сообщение от Аноним (-), 10-Авг-09, 01:55 
>пруфлинк на то, что структуры создаются в стеке можно?

Jeffrey Richter. "CLR via C#, Second Edition"
Primitive, Reference, and Value Types -> Reference Types and Value Types


Ответить | Правка | Наверх | Cообщить модератору

33. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +2 +/
Сообщение от vitek (??), 10-Авг-09, 02:19 
>>пруфлинк на то, что структуры создаются в стеке можно?
>
>Jeffrey Richter. "CLR via C#, Second Edition"
>Primitive, Reference, and Value Types -> Reference Types and Value Types

предлагаете преобрести по сходной цене? :-D

так не серьёзно! тем более поговаривают, что и доки для платформы отличные и т.д.
Вы бы ссылочку что ли кинули, где написано, что структуры создаются в стеке....

Ответить | Правка | Наверх | Cообщить модератору

35. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +2 +/
Сообщение от vitek (??), 10-Авг-09, 03:18 
а. сам нашёл. http://gazette.linux.ru.net/lg85/ortiz.html
действительно ужас. видимо предполагается, что структуры имеют малые размеры, не содержат сложные типы данных и т.д.
а вот тут http://simple-cs.ru/store/csharp/4/ :
>С# также подразделяет типы на две другие категории: размерные и ссылочные. Основное различие между ними — это способ, которым их значения сохраняются в памяти. Размерные типы сохраняют свое фактическое значение в стеке. Ссылочные типы хранят в стеке лишь адрес объекта, а сам объект сохраняется в куче. Куча — основная память программ, доступ к которой осуществляется на много медленнее чем к стеку. Если вы работаете с очень большими объектами, то сохранение их в куче имеет много преимуществ.

вообще непонятно с чего бы доступ к куче был на много медленнее.
в любом случае, все переменные так или иначе - динамические.

Ответить | Правка | Наверх | Cообщить модератору

36. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +1 +/
Сообщение от Аноним (-), 10-Авг-09, 03:37 
>вообще непонятно с чего бы доступ к куче был на много медленнее.

Дело в том, что куча непростая, а "управляемая". Я даже боюсь представить, чего только на нее понавешано...

>в любом случае, все переменные так или иначе - динамические.

Что Вы понимаете под словом "динамические"?

Ответить | Правка | Наверх | Cообщить модератору

37. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от Аноним (-), 10-Авг-09, 03:44 
>действительно ужас.  

Но я так и не понял, что в этом ужасного? Никого ведь не смущает что в Си структуры тоже создается на стеке. Да и в Плюсах далеко не всегда память для объектов выделяют на куче - new тот еще тормоз.


Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

38. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от vitek (??), 10-Авг-09, 12:30 
видимо то, что в таких услових отставание в 5 раз - не так много.
Ответить | Правка | Наверх | Cообщить модератору

42. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от User294 (ok), 13-Авг-09, 14:27 
Ужасно имхо то что сишный компилер может дли int тупо выделить регистры проца, если они есть.Разницу в скорости работы представляете?И кстати, если забить на древнее говно х86, где регистров кот наплакал, у более нормальных процов(х64, арм, мипс, ...) регистров много.И при таких условиях дотнет пожалуй еще и не во столько раз сольет.
Ответить | Правка | Наверх | Cообщить модератору

43. "Реализация Sqlite на C#. Графический интерфейс для SQLite"  +/
Сообщение от Aesthetus Animus (?), 14-Авг-09, 22:22 
>Ужасно имхо то что сишный компилер может дли int тупо выделить регистры
>проца, если они есть.Разницу в скорости работы представляете?

Работу JIT-компилятора хорошо представляете? Если нет - то не надо делать предварительные выводы о том, что куда помешает. В целом, C# вполне пристойный скриптовый язык.


Ответить | Правка | К родителю #42 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру