Можно виртуальную машину сделать…
простых способов
Максимальная скорость непрерывного буферизованного чтения большими блоками у хороших флешек может быть и выше – у меня многие до 10-12 МБ/с спокойно “разгоняются”, некоторые до 16-20МБ/с (хотя существуют на рынке и модели, которые могут достигать в разы большей скорости при таком режиме доступа).
НО, уже скорость записи в режиме случайного доступа мелкими блоками (по 4 КБ) у них вообще никакая! Случайное чтение (и время доступа), правда, у многих флешек еще остается на приличном уровне по сравнению с HDD, хотя от модели к модели картина может сильно меняться.
Вот несколько скринов для сравнения: диск С – SSD 2.5" Samsung (500GB NTFS), диск X – HDD 2.5" Toshiba (500GB NTFS), диск D – microSD SanDisk (2GB FAT16). Все забито под завязку, харды висят на SATA-2, карта – на USB 2.0, все это в стареньком ноуте на Core2Duo под Win7 x64. Оцените разницу в скорости с HDD в разных режимах:
Имейте в виду, что упрощенно говоря, именно чтение/запись блоками по 4K (без учета разных прочих нюансов) сильнее всего сказывается на субъективной скорости работы системного диска. Все это не макс. цифры, особенно для SSD, но в целом соотношения для рабочей системы отображают весьма наглядно.
Флешки в целом наименее надежны и не пригодны для очень частой перезаписи или длительного хранения важных данных. HDD весьма надежны, очень выносливы в плане перезаписи, отлично подходят для бэкапов, могут хранить данные долгие годы в оффлайн режиме, но очень чувствительны к механическим перегрузкам и фрагментации.
SSD же в кач-ве системного диска рекомендую абсолютно всем, кто может себе позволить потратить для комфортной работы хотя бы 50-60$ – помимо существенного (на порядок) ускорения первоначальной загрузки ОС, также очень заметна разница в старте различных приложений, переключении между прожорливыми задачами, загрузке объемных файлов и общей отзывчивости системы. В целом ОС начинает работать плавно, без лишних тормозов и затыков, первое время ощущения после установки SSD – как будто новый комп купил Установка SSD, имхо, это самый целесообразный и эффективный апгрейд для большинства пользователей.
Апгрейд же оперативки (особенно в старых компах), если у вас уже стоит хотя бы 3-4ГБ, для повседневных бытовых и офисных задач, решаемых на десктопах, не дает никакого ощутимого эффекта. Некоторые вещи даже могут начать работать медленнее, чем раньше, напр., функция Suspend-to-Disk. Для некоторых профессиональных приложений эффект, конечно, может быть заметнее, но тоже обычно не такой ярко выраженный, как от быстрого SSD. Другое дело, что в ряде случаев 4ГБ ОЗУ для таких сценариев может быть банально недостаточно даже для запуска, не говоря уже о нормальной работе. Но это, как говорится, уже совсем другая история…
Возможно, это и есть самый простой. Знаете проще?
Нет, не знаю. Но я говорил не про относительное, а про абсолютное “просто”)).
Ну, тогда соглашусь. Впрочем, сегодня сделать виртуалку в том же VirtualBox с желаемой ОС и конфогурацией железа не составит особого труда. Особенно для того, кто почувствовал в этом необходимость
Сделать - да, а вот запустить - не факт. Я пытался запустить так Ubuntu и она жёстко висла при 100% загрузке ЦП и диска. Да и виртуалку делать ради запуска программы - сомнительное удовольствие.
Вроде речь шла об испытаниях работы программы в условиях ограниченной памяти. Конечно, запускать каждый раз программы в виртуалке – не выход. Но как средство тестирования – почему бы нет.
Для тестирования - да, но на практике она как будет применяться?
В целом, я могу сказать только одно - надо писать код так, чтобы на его выполнение хватало памяти у среднестатистических компьютеров. Понимаю, что не в тему, но если говорить, например, о разработках крупных компаний, то оптимизация по памяти, как ни странно, не особо кого волнует, хотя продукт вроде бы как рассчитан на домашние ПК. Вот, например, код от Google(!). Нейросетевая библиотека на JS для браузера - DeepLearn.JS. На моём компьютере с помощью этой библиотеки удалось стилизовать картинку максимум 300 x 200 пикселей, при этом все приложения были закрыты, а оперативка была загружена на 96%. А ведь идея была классная, обработка в браузере - это значит полная мультиплатформенность, а особенность реализации обязывала выполнять абсолютно все операции на собственном компьютере(независимость от сети и полная конфиденциальность). Моя же версия той - же нейросети, на том же компьютере осилила картинку в 1500 x 800 пикселей, при этом был открыт браузер, Паскаль, проводник и Tor. Жёстких зависаний не наблюдалось. Вот Вам Паскаль и .NET, которых так беспощадно ругают.
Нет, ну у жабы вообще с оперативкой всё плохо, не в оптимизации дело))) А так, в целом - я с вами согласен.
Там не совсем Java, там TypeScript. Он помощнее будет. Но даже если не смотреть на гугловскую разработку, то есть convnetjs от Андрея Карпатского. Простенькая библиотека на чистой джаве, которой уже лет 5 наверное. Там обучение крупной нейросети на CIFAR-10 я за час провёл на телефоне. Так что, руки прямые должны быть. А если говорить о поддержке - вообще дичь полная. Задал вопрос человеку в полузаброшенный репозиторий в GitHub - ответил в течении суток(а ведь он то в Америке), задал вопрос в репозиторий DeepLearnJS - ответа не было 1.5 недели. А в ответ через почти 12 дней меня, по сути, послали лесом.
Достоинства HDD:
- Относительно низкая стоимость.
- Большой объём памяти.
Недостатки HDD:
- Небольшой срок хранения информации из-за размагничивания.
- Подверженность механическим и магнитным воздействиям.
- Низкая скорость чтения/записи.
- Быстрый износ механических частей.
- Вибрации, шумы.
- Большие размеры, масса и электропотребление.
Достоинства Флеш - памяти:
- Сравнительно невысокая стоимость.
- Достаточно высокая скорость чтения/записи.
- Длительный срок хранения данных.
- Устойчивость к механическим и магнитным воздействиям.
- Маленькие размеры и масса.
Недостатки Флеш - памяти:
- Подверженность электромагнитному и электростатическому воздействию.
Если говорить о SSD, то он является разновидностью флеш - памяти и имеет те - же свойства, но вот скорость чтения/записи у него выше, чем у простых флешек, собственно, как и стоимость.
Преимущества оптических накопителей:
- Дешевизна.
- Большие объёмы (современные BlueRay - диски могут хранить до 100 ГБ информации).
- Хорошая устойчивость к механическим воздействиям и абсолютная устойчивость перед магнитными, электромагнитными и электростатическими воздействиями.
- Практически неограниченный срок хранения данных.
Недостатки оптических накопителей:
- Малое количество циклов записи/перезаписи.
- Большое электропотребление оборудования.
- Невысокая скорость чтения/записи.
Моё личное мнение - для длительного хранения важной информации как нельзя лучше подойдут оптические накопители. А для простой и эффективной работы на ПК - плюсую к spectatorBH, лучше всего подойдут SSD. HDD может пригодиться для кратковременного хранения очень больших объёмов информации, но придётся обеспечить его защиту от вибраций и мощных магнитных полей. Известны случаи, когда даже просто громкие звуки приводили к выходу из строя HDD и остановки работы целых датацентров. Именно поэтому в серверных запрещено разговаривать громко, можно только шёпотом
Так же, как и set of integer
из милллиарда элементов На самом деле был простой вопрос: как физически ограничить объём ОП.
Да нет, вопрос был - как организовать использование ПЗУ вместо ОЗУ.
Кстати, касательно set’ов, какой в них смысл, если они созданы на базе массивов?
ПЗУ? Его-то как?.. Ну ладно, значит, не по делу сказал.
Если на пальцах… Берём файл, сохраняем его на диск или флешку, создаём поток со ссылкой на этот файл и доступом на чтение и запись и используем его как массив. Данные будут храниться в файле, а не в оперативке… Таким образом, теоретически, можно даже на древнем компьютере обрабатывать массивы в десятки гигабайт.
Если на пальцах, то Вы про ВЗУ. А в ПЗУ вообще писать проблема
Це шо?