![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Заслуженный Участник
|
![]()
вот, наткнулся Figure 1 .NET Value Types
и что-то не понятно мне, сколько RAM надо в манагед коде для System.Boolean на 32-битном компе? а на 64-битном? а если это не System.Boolean-переменная, а массив из 10 штук System.Boolean?
__________________
Lies, damn lies, and statistics. |
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#2 |
My name is Exaybachay
|
![]()
эксперимент показывает что на 32-разрядном - 8 бит. это если массив, по крайней мере. видимо на 64-разрядном та же фигня.
__________________
митьки никого не хотят победить |
![]() |
![]() |
![]() |
#4 |
My name is Exaybachay
|
![]()
эта... там вообще-то CIL, а не ассемблер х86.
а если интересует во что это конкретно компилируется при исполнении на x86, то там byte ptr-ы и все дела...
__________________
митьки никого не хотят победить |
![]() |
![]() |
![]() |
#5 |
Редкий собеседник
|
![]()
В C++ 'bool' от реализации зависит, насколько мне известно. М$ сделала его 1 byte. Для кросс-платформенности - забей на 'bool', как правило его удобнее представлять в виде 32 бит, и структуры легче выравнивать и их размер считать. А для экономии места можно и 8 бит, сам понимаешь, тогда надо следить за тем как данные будут выравнены, чтоб кросс-платформенность не поплыла.
__________________
Steve Jobs:"It's better to be a pirate than to join the Navy." -- Odyssey: Pepsi to Apple |
![]() |
![]() |
![]() |
#6 | |||
My name is Exaybachay
|
![]()
вот сейчас на том же эксперементальном коде проверил:
результат проверки на "одно меньше другого" записывается в булевское значение в массиве фактически тремя командами 1. сравнением 2. setl al (в результате которой в младший байт eax попадает единичка) 3. move byte ptr [ebx+...], al как дохтур прописал. KaraNagai добавил 07.12.2007 в 15:34 Цитата:
![]() ![]() в CLI, если я правильно понимаю, булевское значение всегда 8 байт. так что ответ на вопрос про 64-битный комп такой же, как и в 32-битном случае. Цитата:
KaraNagai добавил 07.12.2007 в 15:35 Цитата:
__________________
митьки никого не хотят победить Последний раз редактировалось KaraNagai, 07.12.2007 в 14:35. Причина: Добавлено сообщение |
|||
![]() |
![]() |
Благодарность от: | Kot (11.12.2007) |
![]() |
#7 |
Редкий собеседник
|
![]()
А ты уже не видишь разности между 'managed' и 'unmanaged'? Читай ссылку выше.
Я сам недавно с этим столкнулся, когда даже пришлось 'managed' структурам явно указывать, что порядок их членов должен быть таким как я его указал, чтоб CLR несоизвольничал, размер структур должен быть 16-byte aligned, повезло, что не надо было явно указывать смешение членов внутри структуры. Вот кто плакал, так это точно был я. ![]()
__________________
Steve Jobs:"It's better to be a pirate than to join the Navy." -- Odyssey: Pepsi to Apple |
![]() |
![]() |
![]() |
#8 | |
My name is Exaybachay
|
![]() Цитата:
![]()
__________________
митьки никого не хотят победить |
|
![]() |
![]() |
![]() |
#9 |
Заслуженный Участник
|
![]()
по-видимому я искал вот этот ответ...
поведай мне, эта команда кладет содержимое младшего байта регистра в память по адресу или весь регистр?
__________________
Lies, damn lies, and statistics. |
![]() |
![]() |
![]() |
#10 |
My name is Exaybachay
|
![]()
al - это младшие 8 бит eax.
KaraNagai добавил 07.12.2007 в 16:40 только в терминах регистров x86 мыслить тут опасненько имхо.
__________________
митьки никого не хотят победить Последний раз редактировалось KaraNagai, 07.12.2007 в 15:40. Причина: Добавлено сообщение |
![]() |
![]() |
Благодарность от: | AlexM (07.12.2007) |
![]() |
#11 | |
Редкий собеседник
|
![]() Цитата:
Чего обсуждать? Разве, что если разницу между 'managed' и 'unmanaged'. Да хотя бы 32-bit и 64-bit? Одна платформа? Хотя для C# один хрен. Да, к тому же я, не знаю почему у меня создалось впечатление, что речь может идти о доступе к bool из unmanaged кода, раз о RAM, а потом о регистрах заговорили.
__________________
Steve Jobs:"It's better to be a pirate than to join the Navy." -- Odyssey: Pepsi to Apple |
|
![]() |
![]() |
![]() |
#12 | |||
My name is Exaybachay
|
![]() Цитата:
Цитата:
![]() Цитата:
__________________
митьки никого не хотят победить |
|||
![]() |
![]() |
![]() |
#13 |
Спам-робот
|
![]() |
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#14 |
My name is Exaybachay
|
![]()
vc ты не вполне прав. шина данных 64 бита была у первых пентиумов уже, что не делает их 64-разрядными процессорами.
__________________
митьки никого не хотят победить |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Размер арендной платы (rent) | D_IRL | Хозяин в доме | 49 | 10.10.2007 22:51 |
Размер Аватары | Inferno | Вопросы и предложения | 15 | 22.08.2007 15:25 |
Про базы данных | alz | IT и Связь | 7 | 29.01.2007 09:40 |
размер шрифтов, иконки, темы | ерёма | Вопросы и предложения | 20 | 06.12.2006 14:03 |
марки, модели - общая база данных? | KaraNagai | Автотранспорт | 15 | 23.06.2003 05:44 |