Как очистить память? Android [Решено]

Раздел, посвящённый самому важному - скорости.

Как очистить память? Android [Решено]

Сообщение VladikDEV 06 июн 2020, 21:25

Синтаксис:
Используется csharp
        private string GetFileMD5(string path)
        {
            using (System.IO.FileStream fs = System.IO.File.OpenRead(path))
            {
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] fileData = new byte[fs.Length];
                fs.Read(fileData, 0, (int)fs.Length);
                byte[] checkSum = md5.ComputeHash(fileData);
                string result = System.BitConverter.ToString(checkSum).Replace("-", string.Empty);
                return result;
            }
        }
 


на андроиде проверяю хешсуммы obb и global-metadata файлов чтобы бороться со взломщиками:D
после этого Mono memory usage возрастает на 130 мб, итого ~140 мб там висит, и никогда не пропадает, и после GC.Collect() тоже. на девайсах с 1GB RAM это заканчивается крашем через несколько минут.
вопрос как очистить память?
Последний раз редактировалось VladikDEV 07 июн 2020, 14:27, всего редактировалось 2 раз(а).
VladikDEV
UNIт
 
Сообщения: 88
Зарегистрирован: 24 май 2016, 13:45
Откуда: Минск

Re: Как очистить память? Android

Сообщение seaman 06 июн 2020, 23:24

Ну для начал я бы попробовал напрямую из потока считать md5
https://docs.microsoft.com/ru-ru/dotnet ... IO_Stream_
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как очистить память? Android

Сообщение Jarico 07 июн 2020, 10:35

VladikDEV писал(а):на андроиде проверяю хешсуммы obb и global-metadat файлов чтобы бороться со взломщиками:D


Я по другому делал, при компиляции C# -> IL2CPP некоторые исходники берутся из папки редактора (Unity_Version/Data/il2cpp) и там есть точка входа в библиотеку (DllMain.cpp)
В неё можно запихать самовалидацию DLL и если валидация не удалась крашить игру
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Как очистить память? Android

Сообщение VladikDEV 07 июн 2020, 11:36

Jarico писал(а):Я по другому делал, при компиляции C# -> IL2CPP некоторые исходники берутся из папки редактора (Unity_Version/Data/il2cpp) и там есть точка входа в библиотеку (DllMain.cpp)
В неё можно запихать самовалидацию DLL и если валидация не удалась крашить игру

ого, звучит интересно) а можно где-то почитать подробнее, это сложно? с dll даже и не работал никогда, как бы чего не сломать:D
VladikDEV
UNIт
 
Сообщения: 88
Зарегистрирован: 24 май 2016, 13:45
Откуда: Минск

Re: Как очистить память? Android

Сообщение VladikDEV 07 июн 2020, 14:24

seaman писал(а):Ну для начал я бы попробовал напрямую из потока считать md5
https://docs.microsoft.com/ru-ru/dotnet ... IO_Stream_

спасибо, это решило проблему
VladikDEV
UNIт
 
Сообщения: 88
Зарегистрирован: 24 май 2016, 13:45
Откуда: Минск


Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1