move perf to optimize