【发布时间】:2018-04-26 20:08:59
【问题描述】:
我正在使用 google translate api 来翻译字符串列表,在这种情况下 - 糖果及其各自的颜色。我翻译没有问题,但是,处理时间非常慢 - 大约 20 秒。我希望提高这个速度。任何建议表示赞赏,谢谢。我的代码如下:
这是来自我的 Spring 应用程序的服务层。处理后,我将List<String> 传递给我的 REST 服务中的控制器层。
我正在处理的数据集大约有 100 个元素。
public List<String> getSortedCandies() {
List<Candy> candyList = new ArrayList<>(this.candyList);
//sort candies
candyList = candyList.stream()
.sorted((o1, o2) -> {
int nameResult = o1.getName().toUpperCase().compareTo(o2.getName().toUpperCase());
if (nameResult == 0) {
return o1.getColor().toUpperCase().compareTo(o2.getColor().toUpperCase());
}
return nameResult;
}).collect(Collectors.toList());
Translate translate = TranslateOptions.getDefaultInstance().getService();
List<String> translatedList = new ArrayList<>();
//translate from english to spanish
for (Candy candy : candyList) {
Detection detection = translate.detect(candy.toString());
String detectedLanguage = detection.getLanguage();
Translation translation = translate.translate(
candy.toString(),
Translate.TranslateOption.sourceLanguage(detectedLanguage),
Translate.TranslateOption.targetLanguage("es")
);
translatedList.add(translation.getTranslatedText());
}
return translatedList;
}
【问题讨论】:
标签: java performance google-translate