Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
Страниц: 1 2 3 [4] 5 6 7 ... 10
 31 
 : 06-12-2017 09:39 
Автор demon051 - Последний ответ от demon051
а Вы отключали во вне цикла, или внутри? Если внутри, то попробуйте снаружи - внутри оно, конечно, никакого эффекта не даст.

включал и выключал естественно снаружи

 32 
 : 06-12-2017 09:06 
Автор demon051 - Последний ответ от darkelf
а Вы отключали во вне цикла, или внутри? Если внутри, то попробуйте снаружи - внутри оно, конечно, никакого эффекта не даст.

 33 
 : 06-12-2017 08:59 
Автор demon051 - Последний ответ от demon051
demon051, как вариант - попробуйте на время вставки отключать визуальное отображение при помощи setUpdatesEnabled()
к сожалению не помогло Жаль

 34 
 : 06-12-2017 08:41 
Автор demon051 - Последний ответ от darkelf
demon051, как вариант - попробуйте на время вставки отключать визуальное отображение при помощи setUpdatesEnabled()

 35 
 : 06-12-2017 07:07 
Автор demon051 - Последний ответ от demon051
Всем привет.
Помогите пожалуйста, найти вариант решения проблемы.

Пишу программу под Qt

Надо сформировать отчет. Использую QTableWidget
Формирую заголовок

Код:
_ui.calcDataView->setColumnCount(daysCnt*2 + 1);

    QTableWidgetItem * item = new QTableWidgetItem("ID");
    _ui.calcDataView->setHorizontalHeaderItem(0,item);
    _ui.calcDataView->hideColumn(0);
   QDate dt = _reportParameters->from().date();

    for(int i=1; i<=daysCnt*2; i++)
    {       
       QString str = QString::fromUtf8("Приход %1").arg(dt.toString("dd.MM"));

       QTableWidgetItem * item = new QTableWidgetItem(str);
       _ui.calcDataView->setHorizontalHeaderItem(i,item);
       QApplication::processEvents();

       i++;
       str = QString::fromUtf8("Уход %1").arg(dt.toString("dd.MM"));
        item = new QTableWidgetItem(str);
       _ui.calcDataView->setHorizontalHeaderItem(i,item);

       dt = dt.addDays(1);
     }

При большом кол-ве столбцов (например более 300), на формирование заголовка уходит больше минуты.
Время отжирает операция вставки _ui.calcDataView->setHorizontalHeaderItem(i,item);
Ещё есть варианты - более быстрые?
через _ui.calcDataView->setHorizontalHeaderLabels(headers) ; пробовал - ещё тормознее!!!

 36 
 : 05-12-2017 23:08 
Автор Aether - Последний ответ от RXL
Я не понял, чего ты понял. Опять что-то свое.
По ссылке darkelf все разжевано. DRAM и кеш принципиально различаются в ячейках хранения: конденсатор и триггер соответственно. Отсюда все плюсы и минусы. Сложность интерфейса к DRAM растет с целью компенсировать главный недостаток — большое время доступа. Кстати, 25 лет назад время доступа к DRAM было 50-70 нс. Сейчас время доступа... 40..50 нс. Т.е. первую порцию данных нужно ждать почти тоже самое время. Но сейчас мы получаем сразу пачку длинной в кеш-строку. По этому плотное расположение данных выгоднее для итерирования, чем разреженное.

 37 
 : 05-12-2017 12:56 
Автор Гром - Последний ответ от Aether
Если человек не знает, что хочет, то может быть ему не стоит идти и получать образование?

Рано или поздно человек задаётся вопросом: чем ему заниматься по жизни? Он опирается на свои интересы, рекомендации родителей и близких ему людей, осматривает рынок труда. В итоге, он приходит в учебное заведение, которое занимается подготовкой специалистов по выбранному им направлению. Задача преподавателя - выдать знания. При этом не ставится цели всё разжевать до мелочей и добиться усвоения материала - это самостоятельная задача студента, и на экзамене будет выявлено что он усвоил и как. У меня в ВУЗе поступило в группу 31 человек, а закончило обучение 17, остальные по большей части были отчислены за неуспеваемость, и это при конкурсе четыре с чем-то человека на место. Естественно, перед поступлением нужно сходить на день открытых дверей, ознакомиться с обстановкой, с учебной программой. А легкомыслие оборачивается всегда негативно.

 38 
 : 05-12-2017 10:11 
Автор Aether - Последний ответ от Aether
В некоторых случаях, чем выравнивание, важнее, сколько твоих структур уместятся в кеше, чтобы реже в память ходить.
Я из всего изученного понял, что главная суть ускорения DRAM в преобразовании параллельного считывания в последовательное. То есть, предположим для упрощения, DRAM работает на частоте 100 МГц, а кэш на 1000 МГц, таким образом, считывая параллельно из DRAM по 80 бит за цикл получаем поток в 8 Гб/с, тот же поток получается при считывании из кэша по 8 бит за цикл, и это быстрее, чем считывать из DRAM по 8 бит за цикл. Сам буфер конечно тоже полезен, но программа не распределяет его использование. Я считаю, что при дробном расположении данных, потребуется несколько обращений к DRAM, а в выровненном состоянии только одно обращение за цикл обработки. Или я заблуждаюсь?

 39 
 : 05-12-2017 10:00 
Автор Гром - Последний ответ от Aether
Преподаватель, он поэтому так и называется - преподаёт предмет желающим его изучать. В отличие от учителя, который должен как-то научить, мотивировать, заставить. Когда человек приходит в техникум или ВУЗ, то по-умолчанию считается, что он знает зачем туда пришёл.

 40 
 : 05-12-2017 07:13 
Автор Гром - Последний ответ от Алексей++
Люсь, да я понял - мотивацию ищешь. Но никто заставлять не будет

Страниц: 1 2 3 [4] 5 6 7 ... 10
Powered by SMF 1.1.21 | SMF © 2015, Simple Machines