Re[12]: Ещё насчёт выбора языка посоветуйте
От: FDSC Россия consp11.github.io блог
Дата: 13.01.20 22:42
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, FDSC, Вы писали:


FDS>>·>Нет. Ты вопрос не понял. На каком основании компилятор будет решать, что "calculateHash" не должна писать в файл (и если кто-то случайно или намеренно там в файл пишет, то выдать ошибку компиляции), а "writeHash" может писать в файл?

FDS>>Программист явно укажет функции, которые могут писать в файл.
·>А calculateHash берёт ссылку на функцию, скажем, для преобразования charset. Каким образом ты объяснишь, что этот преобразователь не должен использовать файловый API? А если вдруг таблицу charset придётся таки в некоторых случаях читать из файла?

Ну вот компилятор должен уметь это делать.

Читать в некоторых случаях прийтись не должно. Если должно, таблица будет передаваться из другого места.


FDS>>·>А если не все, а только 95% функций? А если 5%? Где границу-то ставить?

FDS>>Допустим у нас проект на 20 000 строк кода. 1000 тысяча строк кода может делать всё что угодно. Согласись, есть разница, сколько проверять?
·>Разница слабо коррелирует с кол-вом строк в общем случае.

Что значит слабо коррелирует?
Проверять 100% строк или только 95?


FDS>>·>Это гарантированно быстрее, чем делать много раз при удалении каждого объекта в программе.

FDS>>Гарантированно быстрее вообще не делать.
FDS>>Обнуление памяти при завершении процесса — это слишком рискованная операция. Обнулять всё должно очень и очень быстро.
·>Так это зависит от программы. Если прога держит большое кол-во в памяти в виде развесистой структуры, то может получиться гораздо быстрее занулить всё подряд, чем аккуратно вызывать деструкторы-занулители в правильном порядке.

Неважно, как быстро вы сделаете это в плане времени зануления. Важно, как быстро вы сделаете это в плане времени существования объектов в памяти.


·>С т.з. секьюрити невелика разница. Хакеры могут например специально убивать прогу в точно выбранные моменты времени.


Могут. Но разница есть и, поверьте, она достаточно существенная.


FDS>>pwdAddress = VirtualAlloc(0, len, 0x1000 | 0x2000 | 0x00400000, 0x04);

·>И что эти цифири значат? Ты цитаты из док давай.

Да смысла нет. Просто она может блокировать страницу в физической памяти.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.