Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выделить много памяти / 3 сообщений из 3, страница 1 из 1
29.08.2013, 10:36
    #38380662
Poppler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить много памяти
Есть машина с i7 и 16gb ОЗУ, Win 7 x64. Решил проверить сколько на C# можно памяти коллекцией на этой машине занять, код такой (собрал в release версии x64 с optimization):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace TestAlgoSharp
{
	class Program
	{
		static void Main(string[] args)
		{
			int id = System.Diagnostics.Process.GetCurrentProcess().Id;
			Console.WriteLine("ID: {0}", id);

			List<int> list = new List<int>(100000000);
			for (int i = 0; i < 450000000; ++i)
			{
				list.Add(i);
			}
			Console.ReadLine();
		}
	}
}



цикл не может полностью отработать, отжирает 2.7gb и выскакивает System.OutOfMemoryException. На плюсах можно все 100м засунуть в std::vector<int>.
У дотнета есть какое-то ограничение или в коде что-то не так?
...
Рейтинг: 0 / 0
29.08.2013, 11:10
    #38380717
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить много памяти
gcAllowVeryLargeObjects
...
Рейтинг: 0 / 0
29.08.2013, 11:16
    #38380727
Poppler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить много памяти
МСУgcAllowVeryLargeObjects

сработало, спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Выделить много памяти / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]