Java 在什么情况下,编写、维护以及最重要的是,函数的开销会成为重复代码的可行替代方案?
我一直在想这个问题,今天我想提出这个问题 示例代码:Java 在什么情况下,编写、维护以及最重要的是,函数的开销会成为重复代码的可行替代方案?,java,function,optimization,Java,Function,Optimization,我一直在想这个问题,今天我想提出这个问题 示例代码: private void createLinks(int numUsers) { for (int i = 1; i <= numUsers; i++) { String userId = "ID-" + i; String randomId; // Generate an ID to link to. do { randomId = "ID-" + random.nextInt(i);
private void createLinks(int numUsers) {
for (int i = 1; i <= numUsers; i++) {
String userId = "ID-" + i;
String randomId;
// Generate an ID to link to.
do {
randomId = "ID-" + random.nextInt(i);
} while (randomId.equals(iUserId));
link(userId, randomId); //links the first argument to the second,
//links are not bi-directional.
// Generate 4 more ID's to link to.
for (int j = 1; j <= 4; j++) {
do {
randomId = "ID-" + random.nextInt(i);
} while (randomId.equals(iUserId));
link(userId, randomId);
link(randomId, userId);
}
// Generate another ID to link
do {
randomId = "ID-" + random.nextInt(i);
} while (randomId.equals(iUserId));
link(randomId, userId)
}
}
private void createLinks(整数){
对于(inti=1;i这绝对是一个基于观点的问题,我希望它会被关闭。但我还是会尝试回答它,因为它是一个经常被问到的问题
如果你想要一个简单的答案——不用担心。这可能太早了。真的,你问问题的方式告诉我,你缺乏关于调用此代码的频率和速度的信息。这没关系。我们都面临着这种情况,因为在开发环境中有很多未知因素诀窍是——在操作环境中(当您的代码实际运行时),这些未知的将成为已知的。您将得到有关性能问题的反馈(如果有)。应该说,获得这些反馈本身并不是一项简单的任务,需要一些技能和成熟的工具链。但这不是您要问的问题
我是否主张在开发过程中跳过任何性能优化?当然不是,这很愚蠢。有些问题可以而且应该尽早解决。我只是建议遵循简单明了的原则:
如果你有疑问,等待现实告诉你正确的方法
这一原则可能会被误用。但我希望你明白我的观点——过早优化是万恶之源,对吧?我的自以为是的答案是“永远”。每当我发现自己写了两次相同的代码,我就把它变成一个函数
这种做法不再是基于观点的,因为两段代码做完全相同的事情对程序的正确运行很重要。我不担心用任何语言调用函数的实现性能,除非被确定为瓶颈,这是非常罕见的,内联或不是。重要的是整体性能,现代CPU速度非常快。600次调用在这里是无关紧要的,尤其是与整体工作相关的调用。回答得好。我将做一些分析,并自己找出答案。