Я должен проанализировать различные файлы журнала, которые включают в себя отбор времени, URL и т. Д. Каждый поток доступ к различным файлу журнала и выполняет задачу.
программа для этого: < /p>
public class checkMultithreadedThroughput{
public static void main(String args[]){
ArrayList fileNames = new ArrayList();
fileNames.add("log1");
fileNames.add("log2");
fileNames.add("log3");
fileNames.add("log4");
fileNames.add("log5");
fileNames.add("log6");
fileNames.add("log7");
fileNames.add("log8");
fileNames.add("log9");
Thread[] threads = new Thread[fileNames.size()];
try{
for(int i=0; i
Теперь в классе многопоточности, который расширяет поток, я читаю файл, используя bufferedreader < /strong>. Весь процесс занимает около 15 минут (размер файла велик по 2 ГБ каждый).
Я хочу оптимизировать программу таким образом, чтобы она занимала меньше времени. Предыдущий, но вместо того, чтобы читать по одной строке за раз, читайте несколько строк за раз и выполняйте анализ. Но я не знаю ни одного из них.
Пожалуйста, объясните решение. Поэтому предположим, что если я сломаю файлы в зависимости от количества процессора, то он может разбить между одним интервалом, т. Е.
Предположим, что интервал запускается с 06.00.00 до 07:00:00 (один интервал), как это, их будет 24 интервала (один день) в каждом файле журнала. Поэтому, если я сломаю большой файл журнала, он может разбить между интервалом, и если это будет один интервал, рассчитывающий, как я буду делать. Это проблема, с которой я столкнулся с разделением файла.
Подробнее здесь: https://stackoverflow.com/questions/295 ... es-in-java