Anonymous
он всего лишь настраивает адресное пространство процесса, а фактическая операция скорее всего происходит по запросу
Затратно перехватывать запись в память внутри процесса. К тому же, насколько я помню, там изменения в файл переносятся только после закрытия маппинга
Anonymous
Учитывая это, можно предположить что он считывает весь файл в память, а после закрытия маппинга, записывает в файл
Anonymous
Брат ты про деманд пейджинг не слышал?
Если вы про demand paging, тогда это уже лишние подробности
disba1ancer
Чтение через порты ето не дма
так я про то и говорю, дос только через порты могёт
disba1ancer
впрочем, это может тупо от прошивки биоса зависеть
889
Итак, GCC 11.2.0 Без оптимизации, -m32 Первый вариант — получение размера всего файла, выделение памяти и чтение сразу в память, после чего обработка (поиск 0x01, который находится в самом конце файла). Файл весит 1 ГБ. Скорость выполнения кода (внутренний clock, сек.): 4.743380 Общее кол-во выполненных инструкций: 10,737,601,977 Данные по кэшу: I1 misses: 1,438 LLi misses: 1,420 I1 miss rate: 0.00% LLi miss rate: 0.00% D refs: 6,442,528,090 (6,442,504,347 rd + 23,743 wr) D1 misses: 16,778,976 ( 16,778,688 rd + 288 wr) LLd misses: 16,778,721 ( 16,778,453 rd + 268 wr) D1 miss rate: 0.3% ( 0.3% + 1.2% ) LLd miss rate: 0.3% ( 0.3% + 1.1% ) LL refs: 16,780,414 ( 16,780,126 rd + 288 wr) LL misses: 16,780,141 ( 16,779,873 rd + 268 wr) LL miss rate: 0.1% ( 0.1% + 1.1% ) Второй вариант — получение размера, разделение его на блоки по 10 МБ, чтение+обработка. 1 ГБ / 10 МБ = 102 итераций (чтений) + проверка на кратность, и подброс оставшихся байт Скорость выполнения кода (внутренний clock, сек.): 4.861692 Общее кол-во выполненных инструкций:9,668,078,565 I1 misses: 1,446 LLi misses: 1,428 I1 miss rate: 0.00% LLi miss rate: 0.00% D refs: 5,372,994,835 (5,372,965,524 rd + 29,311 wr) D1 misses: 16,780,106 ( 16,779,511 rd + 595 wr) LLd misses: 16,779,854 ( 16,779,279 rd + 575 wr) D1 miss rate: 0.3% ( 0.3% + 2.0% ) LLd miss rate: 0.3% ( 0.3% + 2.0% ) LL refs: 16,781,552 ( 16,780,957 rd + 595 wr) LL misses: 16,781,282 ( 16,780,707 rd + 575 wr) LL miss rate: 0.1% ( 0.1% + 2.0% )
Вопрос 1 - Нельзя ли было использовать 2 разных файла одинакового размера? Вопрос 2 - Почему бы просто не посмотреть в тактах с помощью витюна?
Надежда
Здравствуйте, есть тут кто-нибудь, кто хорошо разбирается в visual studio и c#?
­
Надежда, мой компас земной...
Надежда
Я сама написала курсовую на с#, но возникли проблемы при переносе на другой ноутбук, не могу никак к visual studio подключить бд с ssms. Подскажите, пожалуйста, как решить проблему?
­
что говорит тебе название группы?
Тут беда в другом. Я в телеге чаты шарпистов не могу найти...
Надежда
Ой, не туда написала
Edem
@csharp_cplus
Надежда
@csharp_cplus
Спасибо 😉
­
Ой, не туда написала
Ну ты заглядывай, если что! ;-)
Надежда
😄
FroZZZ
использую команду fld чтобы загрузить в ST(0) элемент массива, но оно походу забирает оттуда элемент, есть команда чтобы просто скопировать элемент в ST(0), чтобы массив не изменился?
FroZZZ
я хз как это работает, но когда пушу в стек элемент массива, а после этого его вывожу, то выдает 0.0000e+647
Aiwan \ (•◡•) / _bot
я хз как это работает, но когда пушу в стек элемент массива, а после этого его вывожу, то выдает 0.0000e+647
а у тебя real4 или real8? судя по экспоненте что ты показал это real8. какой размер у элемента массивп?
Aiwan \ (•◡•) / _bot
doubleA dq 2.1, 2.2, 1.0, 2.1, 8.6
а как записываешь в стек?
FroZZZ
fld doubleD[eax*8]
FroZZZ
в eax передаю counter с цикла
Aiwan \ (•◡•) / _bot
fld doubleD[eax*8]
это не зарись в стек
FroZZZ
почему-то цикл три раза выполняется и дальше стопится код
FroZZZ
вроде оно работает и все выполняется если один раз делать, но с циклом проблемы
Aiwan \ (•◡•) / _bot
тогда уж уточняй в аакой стек пишешь. обычно то что ты показал называется загрузка в st0 (но верно и то как ты сказал, но с уточнением что это стек fpu, а не cpu)
Aiwan \ (•◡•) / _bot
fld doubleD[eax*8]
не double, а qword. тот же размер что и при определении массива
Aiwan \ (•◡•) / _bot
fld doubleD[eax*8]
и здесь ты вроде адрес загружаешь, а не значение по адресу, но неточно
FroZZZ
загрузка в стек и вычисления проходят корректно, но в цикле начинаются проблемы
Eugene
и здесь ты вроде адрес загружаешь, а не значение по адресу, но неточно
Почему адрес? Всё нормально он загружает. Просто при загрузке все остальные значения сдвигаются. Старое значение из st(0) переходит в st(1), из st(1) в st(2) и т.д.
Aiwan \ (•◡•) / _bot
Потому что это masm, размер указан в описании метки.
эт понятно, но все же. можно ведь написать qword ptr doubled[eax*8]
Aiwan \ (•◡•) / _bot
длино, зато читаемо. доп контроль так сказать. с фасмом в этом плане удобней, ptr немнадо ставить (и то это опционально)
Eugene
длино, зато читаемо. доп контроль так сказать. с фасмом в этом плане удобней, ptr немнадо ставить (и то это опционально)
В fasm тоже можно не указывать размер: fld [doubles+eax*8] doubles dq 3.14, 2.17 А вот в NASM уже не прокатит.
Aiwan \ (•◡•) / _bot
В fasm тоже можно не указывать размер: fld [doubles+eax*8] doubles dq 3.14, 2.17 А вот в NASM уже не прокатит.
а аот если этот участок памяти определишь как rb 8*3, а в коде проинициализируешь память, то вышепредложенный вариант уже немпрокатит, надо указывать размер. я вот про это говорю, както напоролся на такое и долго думал как быть. потом просто размеры указываю в любом обращении к памяти
Aiwan \ (•◡•) / _bot
и вроде так не будет работать fld [doubles+eax*8] doubles: dq 3.14, 2.17 как то пртходилось 94 байтовую переменную фпу скармливать, а такого типа и размера нет
Zyrocat
Женщина...
Zyrocat
Снова женщина
egor
Женщины делают мир красивее и немного глупее
Ratmir
Эй !
­
Эй !
Что эйкаешь?
Ratmir
Привет мир !!!
Glo
Привет мир !!!
"звуки удаления сообщений по причине несоответствия текущей повестке"
Ratmir
64 туториал есть на русском ?
Ratmir
Ничего страшного.
Aiwan \ (•◡•) / _bot
64 туториал есть на русском ?
как правильно гуглить твой запрос?
889
как правильно гуглить твой запрос?
"Как пасти 64 овечки туториал"
Ask
Sven
аж прослезился😁
Aiwan \ (•◡•) / _bot
аж прослезился😁
да, барашек зачетный
ОЛегсей
всем привет, я просто студент с пониманием ассемблера на уровне простой арифмтеики, мне нужна помощь в віолнении задания, мб кто знает как такое сделать на NASM цель вычисление результата + вывод на экран вычислить то я смогу, а вот вывод на экран
ОЛегсей
ОЛегсей
windows
Eugene
Это sasm ?
ОЛегсей
ОЛегсей
мне уже страшно
Eugene
да
Там же есть функции вывода чисел, целые точно, про вещественные не помню.
ОЛегсей
Там же есть функции вывода чисел, целые точно, про вещественные не помню.
если бы я хоть что-то знал, я перерыл лекции и методички учебные, хз, похоже препод на уровне меня знает его