Laravel объединить с нумерацией страниц

System.currentTimeMillis(); НЕ является хорошим подходом для измерения производительности ваших алгоритмов. Он измеряет общее время, которое вы испытываете, как пользователь, наблюдающий за экраном компьютера. Он включает также время, затрачиваемое на все остальное, работающее на вашем компьютере в фоновом режиме. Это может иметь огромное значение, если на вашей рабочей станции есть много программ.

Правильный подход использует пакет java.lang.management.

From http: // nadeausoftware.com/articles/2008/03/java_tip_how_get_cpu_and_user_time_benchmarking веб-сайт:

  • «Время пользователя» - это время, затрачиваемое на выполнение собственного кода вашего приложения.
  • «Система время "- это время, затрачиваемое на выполнение кода операционной системы от имени вашего приложения (например, для ввода-вывода).

getCpuTime() метод дает вам сумму:

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;

public class CPUUtils {

    /** Get CPU time in nanoseconds. */
    public static long getCpuTime( ) {
        ThreadMXBean bean = ManagementFactory.getThreadMXBean( );
        return bean.isCurrentThreadCpuTimeSupported( ) ?
            bean.getCurrentThreadCpuTime( ) : 0L;
    }

    /** Get user time in nanoseconds. */
    public static long getUserTime( ) {
        ThreadMXBean bean = ManagementFactory.getThreadMXBean( );
        return bean.isCurrentThreadCpuTimeSupported( ) ?
            bean.getCurrentThreadUserTime( ) : 0L;
    }

    /** Get system time in nanoseconds. */
    public static long getSystemTime( ) {
        ThreadMXBean bean = ManagementFactory.getThreadMXBean( );
        return bean.isCurrentThreadCpuTimeSupported( ) ?
            (bean.getCurrentThreadCpuTime( ) - bean.getCurrentThreadUserTime( )) : 0L;
    }

}

2
задан DEV 16 January 2019 в 08:56
поделиться

1 ответ

Поскольку операторы where являются причиной проблемы с производительностью, вы можете попытаться создать составной индекс для db1.kuchikomi_language и db1.id, выполнив это в процессе миграции:

$table->index(['kuchikomi_language', 'id']);

ускорить утверждение where('db1.kuchikomi_language', $language).

После этого вы можете попытаться использовать фильтр вместо оператора whereIn('db1.id', $splitted_id)), если выполнение этой части запроса занимает много времени. Вы можете проанализировать это, используя Laravel Debugbar .

Это даст вам возможность кэшировать результаты до и / или после фильтрации разделенных идентификаторов, в зависимости от того, сколько времени занимает фильтрация.

Разбивка на страницы, вероятно, не является причиной проблемы производительности, но также полезно проанализировать это.

0
ответ дан piscator 16 January 2019 в 08:56
поделиться
Другие вопросы по тегам:

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