Привет, я создал функцию AWS Lambda для потока Kinesis для размера партии 100 & Я пытаюсь выполнить ее в многопоточной среде, но проблема в том, что в многопоточной среде она работает очень медленно по сравнению с однопоточными .. Как я могу поделиться вам номерами: для 512 МБ с тайм-аутом 60 секунд функция Lambda выполняет 955 записей в 684 мс & 1031 записей в 435 мс & Для многопоточных он выполняет 430 записей в 878808 мс & 433 записи в 893862 мс для той же памяти (т.е. 512 МБ & 60 секундный тайм-аут)AWS Lambda Java Многопоточность
Ниже приведен мой код функции Lambda, который выполняется в многопоточном режиме:
public String myHandler(final KinesisEvent kinesisEvent, final Context context) {
Thread thread = new Thread(new Runnable(){
//@Override
public void run() {
int singleRecord=0;
long starttime=System.currentTimeMillis();
//LambdaLogger lambdaLogger=context.getLogger();
for(KinesisEventRecord rec : kinesisEvent.getRecords())
{
singleRecord=0;
System.out.println("Kinesis Record inside is:"+new String(rec.getKinesis().getData().array()));
//count++;
singleRecord++;
// System.out.println(new String(rec.getKinesis().getData().array()));
}
count=count+singleRecord;
long endtime=System.currentTimeMillis();
long totaltime = endtime-starttime;
time=time+totaltime;
System.out.println("Time required to execute single Lambda function for "+singleRecord+" records is"+" :: "+totaltime+" milliseconds");
System.out.println("Total time required to execute Lambda function for "+count+" records is"+" :: "+time+" milliseconds");
}
});
thread.start();
return null;
} //end of handler method
Выполняет ли функция лямбда медленно в многопоточной среде? Я хочу знать, что может быть причиной медленной обработки этой многопоточной функции Лямбды? Если я хочу, чтобы эта функция работала быстрее, чем однопоточная функция, то какие изменения я должен делать в этом коде?
Очистить сейчас, спасибо. Но все же - где преимущество запуска нового потока на элемент выполнения? – Jan
@Jan http://docs.aws.amazon.com/lambda/latest/dg/java-gs.html! = Java 8 лямбда-функция, аналогичная концепции, так как вы определяете функцию для запуска в облаке. – zapl
@Akshay: вы можете поделиться одним и тем же кодом, чтобы сравнить? Где определяется 'count'? – Jan