Вероятно, что неработающие соединения разрываются GCP. Вам необходимо установить параметры поддержки активности gRPC для вашего клиента. Примерно так:
"connection-options": {
"grpc.max_receive_message_length": -1,
"grpc.max_send_message_length": -1,
"grpc.keepalive_time_ms": 120000,
"grpc.http2.min_time_between_pings_ms": 120000,
"grpc.keepalive_timeout_ms": 20000,
"grpc.http2.max_pings_without_data": 0,
"grpc.keepalive_permit_without_calls": 1
}
См. https://fabric-sdk-node.github.io/release-1.4/tutorial-grpc-settings.html для получения подробной информации об их настройке Узел SDK
В некотором смысле, Вы находитесь в в значительной степени тех же разработчиках игр ситуации где во время Tandys, Спектров и ранних ПК. Так, вот моя рекомендация:
Необходимо считать записи Michael Abrash на компьютерной графике. Они были записаны во время, где сопроцессор с плавающей точкой был дополнительной частью аппаратных средств, и они описывают много основных методов (строки Bresenham, и т.д.) используемый в старом (предположительно, 'плохо') представленный в программном обеспечении днями.
Можно прочитать большую часть его "Черного списка" здесь.
Additionaly, можно, вероятно, найти много старых файлов BBS, что большинство людей раньше назад в день изучало графику, программирующую здесь. Просто поиск Графики, Строк, и что нет.
Надежда, которая помогает!
Обновление: Я также вспоминаю использование этого в моих первых попытках рисования вещей на экране. Не может сказать, сколько времени я потратил попытку понять математику позади него (хорошо, для ярмарки я был похож 15 в то время). Очень хороший (и простой) введение в 3D, и очень хороший премьер-министр на преобразованиях, заполнителях полигона и интерполяции.
Какие данные Вы покажете на экране?
Если это не фотографические изображения, Вы могли бы рассмотреть использование палитры. Например: 256 цветовых палитр с помощью 8 бит на пиксель потребовали бы 20 КБ, (плюс 256 x 2 байта для справочной таблицы), который, по крайней мере, лучше, чем 40 КБ.
Некоторые идеи, которые объединили бы хорошую графику и низкую память:
Я полагаю, что основная техника для контакта с этим видом ситуации состоит в том, чтобы разделить экран на узкие горизонтальные дорожки и только буферизовать две таких дорожки в RAM. Одна дорожка будет отображена при рендеринге следующего вниз. Когда сканирование 'луч' поражает следующую дорожку (и исчерпывает прерывание для Вас для ловли), Вы подкачиваете два и начинаете опускать следующую дорожку.
Противный побочный эффект этого состоит в том, что это, у Вас есть трудно синхронизирующие пределы на то, сколько времени можно потратить на рендеринг каждой дорожки. Таким образом, я предполагаю, что было бы заманчиво придерживаться чего-то скучного, но предсказуемой производительности, как спрайты.
Немного offtopic, но это - то, как DS Nintendo 3D аппаратные средства работает. Вы видите его, при попытке представить слишком много полигонов вокруг той же y-координаты - то уловки будут случайным образом мерцать и выбывать, поскольку экранное обновление настигает аппаратные средства рендеринга.
Кроме того, я был бы второй предложение другого плаката, чтобы Вы использовали рендеринг palettised. Очень трудно сделать быструю математику на пикселях на 16 битов, но быстрее в 8 битах, если Вы умны о том, как Вы размечаете свою палитру.