Что некоторые более быстрые альтернативы к Java2d?

Самый лучший и простой способ

private void exportToExcel(DataTable dt)
    {

        /*Set up work book, work sheets, and excel application*/
        Microsoft.Office.Interop.Excel.Application oexcel = new Microsoft.Office.Interop.Excel.Application();
        try
        {
            string path = AppDomain.CurrentDomain.BaseDirectory;
            object misValue = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Excel.Workbook obook = oexcel.Workbooks.Add(misValue);
            Microsoft.Office.Interop.Excel.Worksheet osheet = new Microsoft.Office.Interop.Excel.Worksheet();


          //  obook.Worksheets.Add(misValue);

            osheet = (Microsoft.Office.Interop.Excel.Worksheet)obook.Sheets["Sheet1"];
            int colIndex = 0;
            int rowIndex = 1;

            foreach (DataColumn dc in dt.Columns)
            {
                colIndex++;
                osheet.Cells[1, colIndex] = dc.ColumnName;
            }
            foreach (DataRow dr in dt.Rows)
            {
                rowIndex++;
                colIndex = 0;

                foreach (DataColumn dc in dt.Columns)
                {
                    colIndex++;
                    osheet.Cells[rowIndex, colIndex] = dr[dc.ColumnName];
                }
            }

            osheet.Columns.AutoFit();
            string filepath = "C:\\Temp\\Book1";

            //Release and terminate excel

            obook.SaveAs(filepath);
            obook.Close();
            oexcel.Quit();
            releaseObject(osheet);

            releaseObject(obook);

            releaseObject(oexcel);
            GC.Collect();
        }
        catch (Exception ex)
        {
            oexcel.Quit();
            log.AddToErrorLog(ex, this.Name);
        }
    }
17
задан Eddie 2 March 2009 в 17:37
поделиться

4 ответа

Мой опыт с Java2D состоит в том, что это может быть очень быстро, если Вы следуете правилам. У меня было приложение, которое пошло от 90% ЦП меньше чем к 5% ЦП только путем изменения нескольких простых вещей. Используя большой прозрачный PNG нет не, например.

А очень хороший ресурс является форумами Java-Gaming.org: много людей, включая Sun 2D специалисты, зависает там и обеспечивает много примеров и решений проблем производительности для 2D рисунка.

См.: http://www.javagaming.org/ и затем тема "Настройка Производительности".

11
ответ дан 30 November 2019 в 13:34
поделиться

JOGL может быть намного быстрее, чем Java2D, даже если вы используете его только для создания 2D-графики: как упоминал Клэйворт, обычно зависит от того, что вам нужно сделать.

Я предполагаю, что для двумерных физических симуляций, когда у вас есть (текстурированные или нетекстурированные) объекты, вращающиеся и перемещающиеся с 2 степенями свободы, JOGL должен обеспечивать наилучшую производительность, а также легко позволять вам предоставить масштабируемый интерфейс. Вот учебник для OpenGL для 2D-графики (C, но легко адаптируемый к JOGL).

JOGL займет немного больше времени, чем Java2D, но для достижения хорошей производительности, скорее всего, не потребуется специализированная оптимизации как в Java2D.

5
ответ дан 30 November 2019 в 13:34
поделиться

Я не знаю - в прошлом, я сказал бы да - особенно, если Вы используете дисплейные списки вместо того, чтобы выполнить много вызовов через API каждый раз, когда экран отображен. Но обновите 10 из 1,6 добавленных JVM, ускорил графику Java2D, имеют преимущество теперь - также. Действительно единственный способ знать наверняка состоит в том, чтобы попытаться представить типичные сцены в обоих и измерить его.

4
ответ дан 30 November 2019 в 13:34
поделиться

Также ознакомьтесь с Slick , который основан на LWJGL и в некотором роде похож на Java2D. Он использует OpenGL и поэтому работает намного быстрее.

2
ответ дан 30 November 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: