Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 
Вернуться
Тема: Почему массив интов 5000x5000 в 1651 задаче на java занимает 441 Мб памяти, а на с++ 191 Mб?
1
  1  Егоров Илья Валерьевич, 29 мая 2019 г. 23:25:29
      И полагаю, что в обоих случаях данная конструкция занимает меньше 100 Мб: даже если учитывать размер ссылок на массивы, оверхэд и выравнивание, суммарно размер теоретически не превышает 100 Мб в обоих реализациях. Можно вполне в этом убедиться, вычислив размер массива, например, по этой статье: https://habr.com/ru/post/142409/. А еще лучше не гадать и проверить анализатором.
  2  Егоров Илья Валерьевич, 29 мая 2019 г. 23:07:29
      Кхм. Меня одного волнует использованный способ сравнения и вообще корректность данного действа? Если сравнивается просто потребление памяти приложения в целом (а не средствами всевозможных анализаторов памяти), то наличие сторонних факторов вполне естественно: вы, как говорится, не тех попугаев считаете. Если сравнивается тут по потреблению памяти решением, то смею заверить, что в зависимости от того, в стеке массив или в куче, он может вообще не учитываться (давно замеченное свойство замеров здешних). P.s. Нет, в Java нет фичи "длинная арифметика по умолчанию", это в Python, Haskell и подобных она, из-за чего там заморочки с нуждами вида "сгенерировать рандомное 32-битное знаковое число".
  3  Яндулов Богдан, 14 февраля 2019 г. 17:55:46
      int[][] p0 = new int[5001][5001], p1 = new int[5001][5001];
  4  Меньшиков Фёдор Владимирович, 07 февраля 2019 г. 12:34:39
      Богдан, у Вас int[5000][5000]? Не массив из объектов?
  5  Яндулов Богдан, 03 февраля 2019 г. 3:25:32
      Ну да, 2 двумерных 5000*5000. Но почему такая большая разница в памяти между С++ и Java.
  6  Степанов Дмитрий Викторович, 02 февраля 2019 г. 11:13:29
      потому что в джаве длинная арифметика ???
  7  Беляев Сергей Николаевич, 01 февраля 2019 г. 2:25:04
      Полагаю, что на C++ такой массив занимает менее 100 Мб. В задаче 1651 одним таким массивом весьма непросто обойтись. По крайней мере хотелось бы иметь 2 таких плюс парочку одномерных из 5000 элементов.
1

Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!

Красноярский краевой Дворец пионеров, (c)2006 - 2019, E-mail: admin@acmp.ru