C# Создание отдельного сборщика мусора для каждого потока ⇐ C#
C# Создание отдельного сборщика мусора для каждого потока
Я планирую создать приложение для редактирования и секвенирования звука в реальном времени на C#, используя в основном библиотеку cscore для обработки звука на серверной части, а затем Avalonia для внешнего интерфейса (с использованием Avalonia. Разметка.Декларативная, хотя не уверен, что это имеет большое значение). Я ожидаю, что интерфейсная часть будет время от времени требовать очистки GC во время нормальной работы/использования, и хотела бы убедиться, что это не повлияет на серверную часть во время GC - если звуковая часть должна приостанавливаться во время GC, это может при этом будет слышно зависание или запаздывание. Для меня возможно написать код, используя предварительно выделенную память или ручное управление памятью для серверной части, но это невозможно для Avalonia, без изменения почти всей ее внутренней логики и значительного изменения способа взаимодействия с фреймворком по сравнению с официальным. docs (возможно, это невозможно, и точка - я особо этим не занимался).
Есть ли способ создать отдельные кучи/GC для каждого потока, чтобы серверные потоки могли иметь свои собственные отдельные GC, на которые не влияет пользовательский интерфейс, или мне придется создать два отдельных приложения в стиле сервера/клиента и сделать некоторая форма IPC между ними. В качестве альтернативы, есть ли способ пометить внутренний код, который не требует взаимодействия со сборщиком мусора для продолжения работы во время очистки сборщика мусора, если я точно знаю, что это не повлияет. Если да, то как лучше всего это сделать, учитывая потенциально большие объемы произвольных данных, которые мне хотелось бы передавать между ними.
Я планирую создать приложение для редактирования и секвенирования звука в реальном времени на C#, используя в основном библиотеку cscore для обработки звука на серверной части, а затем Avalonia для внешнего интерфейса (с использованием Avalonia. Разметка.Декларативная, хотя не уверен, что это имеет большое значение). Я ожидаю, что интерфейсная часть будет время от времени требовать очистки GC во время нормальной работы/использования, и хотела бы убедиться, что это не повлияет на серверную часть во время GC - если звуковая часть должна приостанавливаться во время GC, это может при этом будет слышно зависание или запаздывание. Для меня возможно написать код, используя предварительно выделенную память или ручное управление памятью для серверной части, но это невозможно для Avalonia, без изменения почти всей ее внутренней логики и значительного изменения способа взаимодействия с фреймворком по сравнению с официальным. docs (возможно, это невозможно, и точка - я особо этим не занимался).
Есть ли способ создать отдельные кучи/GC для каждого потока, чтобы серверные потоки могли иметь свои собственные отдельные GC, на которые не влияет пользовательский интерфейс, или мне придется создать два отдельных приложения в стиле сервера/клиента и сделать некоторая форма IPC между ними. В качестве альтернативы, есть ли способ пометить внутренний код, который не требует взаимодействия со сборщиком мусора для продолжения работы во время очистки сборщика мусора, если я точно знаю, что это не повлияет. Если да, то как лучше всего это сделать, учитывая потенциально большие объемы произвольных данных, которые мне хотелось бы передавать между ними.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Демон немедленно прекращает работу сборщика мусора JVM и после нехватки памяти JVM.
Anonymous » » в форуме JAVA - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Можно ли писать код на Java без использования сборщика мусора? [дубликат]
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-