powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Аналог оператора DATA в C#
18 сообщений из 18, страница 1 из 1
Аналог оператора DATA в C#
    #39346551
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В PowerBASIC`е есть оператор DATA, он позволяет разместить строковые литералы в read-only data segment , в пределах секции .text скомпилированного EXE файла:
Код: vbnet
1.
2.
3.
Data "10FED40032202033202034202035202036202037A3032202033202034202035202036202037A3"
Data "20FEE4002020382020392020412020422020432077032202033202034202035202036202037A3"
Data "30FEF40020442020452020462020204153434949C6032202033202034202035202036202037A3"


Чтобы на этапе запуска приложения эти данные были сразу помещены в секцию .data и доступны немедленно, без копирования, выделений памяти и прочих накладных расходов.

Как в шарпе сделать подобное хранение строк? Не базы, не файлы, не ресурсы. Так как слишком медленно. А сразу в initialized data segment процесса. Нужна максимальная скорость доступа к данным.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346558
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

Константы? Или это тоже медленно?
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346588
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

строковые константы при запуске приложения интернируются, дальнейшая работа с ними сводится только к получению ссылки из пула интернирования. Вам этого недостаточно?
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346647
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКонстанты? Или это тоже медленно?

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


Сон Веры ПавловныEolt,

строковые константы при запуске приложения интернируются

Первый раз слышу такой термин. Как они хранятся в адресном пространстве процесса?
Если это сегмент данных, то BSS или Data (uninitialized/ininitialized) часть ?
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346661
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eoltвот пытаюсь понять. Хочу перетащить своего старого бота для генерации текстов, на .Net платформу.

Если говорить о скорости, то константы в .NET это максимально быстро, быстрее чем ресурсы и БД. Теперь о требованиях, сколько именно там данных, создаём нулёвый проект, запихиваем всё что требуется в константы и проводим испытания, на скорость запуска и на скорость доступа к константам с момента запуска.


EoltЕсли это сегмент данных, то BSS или Data (uninitialized/ininitialized) часть ?

Константы хранятся прямо в IL. Терминология упаковки стандартных исполняемых файлов здесь не подходит. Можешь попробовать скомпилить сборку с помощью ngen и посмотреть чего куда складывается. Если эта часть и документирована, то я информации не нашёл.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346702
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКонстанты хранятся прямо в IL.
Хранятся-то они там, но вот в кучу (а потом в интерн-пул) они при старте программы грузятся всё тем же ldstr.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346713
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эти расходы смехотворны, вы загоняетесь на оптимизации ) или обоснуйте нафига это вообще :)
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346800
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныhVosttКонстанты хранятся прямо в IL.
Хранятся-то они там, но вот в кучу (а потом в интерн-пул) они при старте программы грузятся всё тем же ldstr.

Ну естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346861
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНу естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить
способы загрузки -разные

ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам.

EoltТак как слишком медленно.
не верю (с)
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346885
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltНе базы, не файлы, не ресурсы. Так как слишком медленно
слишком медленно для бота ??
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346886
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилhVosttНу естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить
способы загрузки -разные

ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам.

EoltТак как слишком медленно.
не верю (с)

А если положить в константы пару гигов данных или больше?
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346906
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt, почитай https://habrahabr.ru/post/224281/
Если кратко, то интернирование позволяет сравнивать только ссылки на объект string, без сравнения содержимого.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346923
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltХочу перетащить своего старого бота для генерации текстов, на .Net платформу.
Ты бы поподробней описал что твой бот с этими строками делает. Может достаточно просто массива string[] с заполнением при старте.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346937
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

А может нужен самый быстрый старт на свете?
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346953
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttА может нужен самый быстрый старт на свете?
Может. Тогда самый быстрый старт - стартануть при включении компа и висеть в ожидании запросов.
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39346966
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТогда самый быстрый старт - стартануть при включении компа
без стебелька - никак
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39347128
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
hVosttИзопропилпропущено...

способы загрузки -разные

ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам.

пропущено...

не верю (с)

А если положить в константы пару гигов данных или больше?
То такого программиста надо сразу переквалифицировать в менеджеры по пылесосам
...
Рейтинг: 0 / 0
Аналог оператора DATA в C#
    #39347145
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2То такого программиста надо сразу переквалифицировать в менеджеры по пылесосам
не, пущай сначала пример в студию
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Аналог оператора DATA в C#
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]