Я пишу программу на C#. Все сосредоточено вокруг статического 2D массива int, который составляет 400x6 элементов. Только несколько значений будут обновляться только раз в минуту. Но после обновлений каждой минуты десятки функций будут считывать значения миллионы раз, чтобы вычислить «оценки шаблонов». Чем быстрее вычисляются, тем больше функций я могу запихнуть там. Реально я могу позволить 30 секунд для этого процесса подсчета очков. Есть ли способ выделить статический массив в стек, и если да, то это поможет скорости? Благодарю.C# Выделить массив для стека?
3
A
ответ
4
Да, вы можете выделять массивы в стеке на C#, используя «stackalloc» в «небезопасном режиме», но тесты показывают ограниченное увеличение производительности, и риск состоит в том, что вы нажимаете ограничение размера стека 1Mb ... которое даст вы ... StackOverflow (tm)!
Вот хорошая статья на эту тему: http://blogs.microsoft.co.il/sasha/2013/10/17/on-stackalloc-performance-and-the-large-object-heap/
0
Вы можете использовать «stackalloc» в массив Alloc непосредственно в стеке.
Некоторая документация о: https://msdn.microsoft.com/en-us/library/aa664785(v=vs.71).aspx
Вы также можете использовать реализацию Хэмминга веса, который описывает здесь: How to allocate arrays on the stack for performance gains?
Смежные вопросы
- 1. C++ выделить массив памяти struc
- 2. C++ выделить синтаксический массив вопрос
- 3. C выделить 2D массив различных размеров
- 4. Как выделить 2D-массив указателей в C++
- 5. Выделить память 2d массив в функции C++
- 6. Де-выделить 3D-массив
- 7. Выделить массив 3D-символов в C (char ***)
- 8. Objective-C: как выделить массив из GLuint
- 9. Выделить массив из 999999999 клеток | C++
- 10. Как выделить массив строк в C++?
- 11. Как выделить массив указателей для строк по malloc в C?
- 12. 2D-массив 100x100 переполнение стека; нет ошибки в куче. C++
- 13. выделить динамический массив структуры
- 14. Выделить двумерный массив
- 15. Выделить память в двумерный массив
- 16. Выделить массив без указания размера
- 17. Почему 2D-массив используется для стека? Почему нельзя использовать массив 1D для стека?
- 18. Elasticearch выделить массив, как вернуть весь массив
- 19. Как выделить больше памяти для кода C
- 20. ошибка переполнения стека стека C++
- 21. C Бесплатный указатель массива для стека
- 22. Функция печати для стека C++
- 23. Java массив, используя пространство стека
- 24. Plotting массив бар стека Google
- 25. C++ реализация стека
- 26. C++ Сброс стека стека в * .exe.stackdump
- 27. Невозможно выделить сложный 2D-массив
- 28. Максимальный размер стека для программы C/C +?
- 29. C++ Выделить на стек без инициализации
- 30. Как выделить смежный 2D-массив строк в C
Там нет причин, почему это было бы никакой разницы. В любом случае массив будет кэшироваться. Тем не менее, было бы полезно избежать проверки границ (используя небезопасный код). – Luaan