我正在用Python用龟编写可视化气泡排序的代码,但这非常慢。有什么方法可以加快速度吗,因为Python turtle的@Bean
public IntegrationFlow inboundFileIntegration(
) {
CronTrigger cronTrigger = new CronTrigger("0 0/1 12-18 ? * MON-FRI");
return IntegrationFlows.from(fileReadingMessageSource(),
c -> c.poller(Pollers.trigger(cronTrigger)
.maxMessagesPerPoll(10).advice(new AbstractMessageSourceAdvice() {
@Override
public Message<?> afterReceive(Message<?> message, MessageSource<?> messageSource) {
System.out.println("after");
return message;
}
@Override
public boolean beforeReceive(MessageSource<?> source) {
System.out.println("before");
return true;
}
})))
// .transactionSynchronizationFactory(transactionSynchronizationFactory())
// .transactional(transactionManager())))
.log()
.transform(Files.toStringTransformer())
.transform(o -> {
// jmsTemplate.convertAndSend("testing_queue", o);
System.out.println(o);
return o;
})
.channel(ApplicationConfiguration.INBOUND_CHANNEL)
.get();
}
不够快。还是有其他使用Python进行此类项目的方式?
答案 0 :(得分:2)
您应该做的第一件事就是确认是乌龟图形在减慢速度。例如,在有无图形的情况下运行气泡排序,以查看实际损失了多少时间。
一种加快乌龟图形处理速度的方法(您应该谨慎对待)是使用tracer()
:
screen = turtle.Screen()
# ...
screen.tracer(False) # turn off graphic updates
# ...
# Whenever you make a change you want the user to see:
screen.update() # make screen current
# ...
# When you're completely finished:
screen.tracer(True) # turn graphics updates back on
# ...
screen.mainloop()
在这种情况下,您不需要speed(0)
(又名speed('fastest')
),尽管离开它不会有任何伤害。某些图形操作将强制screen.update()
使其独立于您的调用,不要感到惊讶。确保最后tracer(True)
,以便正确地隐藏乌龟之类的东西。
最后,在上面的问题中添加一个最小的代码示例,以进行适当的审查。