GOOGLE ADS

вторник, 12 апреля 2022 г.

Быстрое построение пикселей с использованием SWT?

Я ищу быстрый и простой способ построения пикселей произвольного цвета на холсте SWT. Пока я использую что-то вроде этого:

// initialization:
GC gc = new GC(canvas);
// inside the drawing loop:
Color cc = new Color(display, r, g, b);
gc.setForeground(cc);
gc.drawPoint(x, y);
cc.dispose();

Это ужасно ужасно медленно. для заполнения холста 300x300 пикселями требуется около полутора секунд. Я мог бы создать изображение за пределами экрана, установить в нем пиксели, а затем нарисовать изображение. Это будет быстрее, но я особенно хочу, чтобы эффект постепенного рисования отображал изображение попиксельно на холсте.


Решение проблемы

Бьюсь об заклад, производительность убивает выделение и освобождение 90 000 Colorобъектов. Помните, что в SWT каждый Colorобъект выделяет нативные ресурсы, вот почему вы должны dispose()это делать. Это означает, что каждый раз, когда вы выделяете и удаляете Colorобъект, вы должны переходить от JVM к собственному коду и обратно.

Можете ли вы кэшировать свои Colorэкземпляры в цикле 300x300 пикселей, а затем удалять объекты после цикла? Вам понадобится несколько интеллектуальный кеш, который содержит максимум столько объектов, а после этого удаляет некоторые из своих записей, но это должно значительно ускорить работу.

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...