|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
В PowerBASIC`е есть оператор DATA, он позволяет разместить строковые литералы в read-only data segment , в пределах секции .text скомпилированного EXE файла: Код: vbnet 1. 2. 3.
Чтобы на этапе запуска приложения эти данные были сразу помещены в секцию .data и доступны немедленно, без копирования, выделений памяти и прочих накладных расходов. Как в шарпе сделать подобное хранение строк? Не базы, не файлы, не ресурсы. Так как слишком медленно. А сразу в initialized data segment процесса. Нужна максимальная скорость доступа к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 01:36 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Eolt, Константы? Или это тоже медленно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 02:43 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Eolt, строковые константы при запуске приложения интернируются, дальнейшая работа с ними сводится только к получению ссылки из пула интернирования. Вам этого недостаточно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 08:50 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
авторКонстанты? Или это тоже медленно? вот пытаюсь понять. Хочу перетащить своего старого бота для генерации текстов, на .Net платформу. Сон Веры ПавловныEolt, строковые константы при запуске приложения интернируются Первый раз слышу такой термин. Как они хранятся в адресном пространстве процесса? Если это сегмент данных, то BSS или Data (uninitialized/ininitialized) часть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 10:46 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Eoltвот пытаюсь понять. Хочу перетащить своего старого бота для генерации текстов, на .Net платформу. Если говорить о скорости, то константы в .NET это максимально быстро, быстрее чем ресурсы и БД. Теперь о требованиях, сколько именно там данных, создаём нулёвый проект, запихиваем всё что требуется в константы и проводим испытания, на скорость запуска и на скорость доступа к константам с момента запуска. EoltЕсли это сегмент данных, то BSS или Data (uninitialized/ininitialized) часть ? Константы хранятся прямо в IL. Терминология упаковки стандартных исполняемых файлов здесь не подходит. Можешь попробовать скомпилить сборку с помощью ngen и посмотреть чего куда складывается. Если эта часть и документирована, то я информации не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 10:58 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
hVosttКонстанты хранятся прямо в IL. Хранятся-то они там, но вот в кучу (а потом в интерн-пул) они при старте программы грузятся всё тем же ldstr. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 11:25 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
эти расходы смехотворны, вы загоняетесь на оптимизации ) или обоснуйте нафига это вообще :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 11:34 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныhVosttКонстанты хранятся прямо в IL. Хранятся-то они там, но вот в кучу (а потом в интерн-пул) они при старте программы грузятся всё тем же ldstr. Ну естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 13:20 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
hVosttНу естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить способы загрузки -разные ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам. EoltТак как слишком медленно. не верю (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 14:22 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
EoltНе базы, не файлы, не ресурсы. Так как слишком медленно слишком медленно для бота ?? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 14:42 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
ИзопропилhVosttНу естественно грузятся. Чтобы с чем-то начать работать, надо это загрузить способы загрузки -разные ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам. EoltТак как слишком медленно. не верю (с) А если положить в константы пару гигов данных или больше? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 14:42 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Eolt, почитай https://habrahabr.ru/post/224281/ Если кратко, то интернирование позволяет сравнивать только ссылки на объект string, без сравнения содержимого. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 15:12 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
EoltХочу перетащить своего старого бота для генерации текстов, на .Net платформу. Ты бы поподробней описал что твой бот с этими строками делает. Может достаточно просто массива string[] с заполнением при старте. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 15:31 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Dima T, А может нужен самый быстрый старт на свете? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 15:39 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
hVosttА может нужен самый быстрый старт на свете? Может. Тогда самый быстрый старт - стартануть при включении компа и висеть в ожидании запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 15:54 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
Dima TТогда самый быстрый старт - стартануть при включении компа без стебелька - никак ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 16:09 |
|
Аналог оператора DATA в C#
|
|||
---|---|---|---|
#18+
hVosttИзопропилпропущено... способы загрузки -разные ну не использует c# в исполняемом файле Readonly Initialized Data Segment аналогично С-шным программам. пропущено... не верю (с) А если положить в константы пару гигов данных или больше? То такого программиста надо сразу переквалифицировать в менеджеры по пылесосам ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2016, 21:30 |
|
|
start [/forum/topic.php?fid=20&fpage=52&tid=1400224]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 411ms |
0 / 0 |