mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
JPS: Use System.nanoTime instead of System.currentTimeMillis where possible
GitOrigin-RevId: 309aac5d8e50979b1fe856abaaef206ec3c58a1e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5374f024ad
commit
c4c90bc1bc
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.javac;
|
||||
|
||||
import io.netty.bootstrap.Bootstrap;
|
||||
@@ -71,7 +71,7 @@ public class ExternalJavacProcess {
|
||||
* @param args: SessionUUID, host, port,
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
//myGlobalStart = System.currentTimeMillis();
|
||||
//myGlobalStart = System.nanoTime();
|
||||
UUID uuid = null;
|
||||
String host = null;
|
||||
int port = -1;
|
||||
@@ -106,10 +106,10 @@ public class ExternalJavacProcess {
|
||||
|
||||
final ExternalJavacProcess process = new ExternalJavacProcess(keepRunning);
|
||||
try {
|
||||
//final long connectStart = System.currentTimeMillis();
|
||||
//final long connectStart = System.nanoTime();
|
||||
if (process.connect(host, port)) {
|
||||
//final long connectEnd = System.currentTimeMillis();
|
||||
//System.err.println("Connected in " + (connectEnd - connectStart) + " ms; since start: " + (connectEnd - myGlobalStart));
|
||||
//final long connectEnd = System.nanoTime();
|
||||
//System.err.println("Connected in " + TimeUnit.NANOSECONDS.toMillis(connectEnd - connectStart) + " ms; since start: " + TimeUnit.NANOSECONDS.toMillis(connectEnd - myGlobalStart));
|
||||
process.myConnectFuture.channel().writeAndFlush(
|
||||
JavacProtoUtil.toMessage(uuid, JavacProtoUtil.createRequestAckResponse())
|
||||
);
|
||||
@@ -147,8 +147,8 @@ public class ExternalJavacProcess {
|
||||
Collection<? extends File> sourcePath,
|
||||
Map<File, Set<File>> outs,
|
||||
final CanceledStatus canceledStatus) {
|
||||
final long compileStart = System.currentTimeMillis();
|
||||
//System.err.println("Compile start; since global start: " + (compileStart - myGlobalStart));
|
||||
final long compileStart = System.nanoTime();
|
||||
//System.err.println("Compile start; since global start: " + TimeUnit.NANOSECONDS.toMillis(compileStart - myGlobalStart));
|
||||
final DiagnosticOutputConsumer diagnostic = new DiagnosticOutputConsumer() {
|
||||
@Override
|
||||
public void javaFileLoaded(File file) {
|
||||
@@ -198,9 +198,9 @@ public class ExternalJavacProcess {
|
||||
return JavacProtoUtil.toMessage(sessionId, JavacProtoUtil.createFailure(e.getMessage(), e));
|
||||
}
|
||||
finally {
|
||||
final long compileEnd = System.currentTimeMillis();
|
||||
System.err.println("Compiled in " + (compileEnd - compileStart) + " ms");
|
||||
//System.err.println("Compiled in " + (compileEnd - compileStart) + " ms; since global start: " + (compileEnd - myGlobalStart));
|
||||
final long compileEnd = System.nanoTime();
|
||||
System.err.println("Compiled in " + TimeUnit.NANOSECONDS.toMillis(compileEnd - compileStart) + " ms");
|
||||
//System.err.println("Compiled in " + TimeUnit.NANOSECONDS.toMillis(compileEnd - compileStart) + " ms; since global start: " + TimeUnit.NANOSECONDS.toMillis(compileEnd - myGlobalStart));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -314,15 +314,15 @@ public class ExternalJavacProcess {
|
||||
|
||||
public void stop() {
|
||||
try {
|
||||
//final long stopStart = System.currentTimeMillis();
|
||||
//System.err.println("Exiting. Since global start " + (stopStart - myGlobalStart));
|
||||
//final long stopStart = System.nanoTime();
|
||||
//System.err.println("Exiting. Since global start " + TimeUnit.NANOSECONDS.toMillis(stopStart - myGlobalStart));
|
||||
final ChannelFuture future = myConnectFuture;
|
||||
if (future != null) {
|
||||
future.channel().close().await();
|
||||
}
|
||||
myEventLoopGroup.shutdownGracefully(0, 15, TimeUnit.SECONDS).await();
|
||||
//final long stopEnd = System.currentTimeMillis();
|
||||
//System.err.println("Stop completed in " + (stopEnd - stopStart) + "ms; since global start: " + ((stopEnd - myGlobalStart)));
|
||||
//final long stopEnd = System.nanoTime();
|
||||
//System.err.println("Stop completed in " + TimeUnit.NANOSECONDS.toMillis(stopEnd - stopStart) + "ms; since global start: " + TimeUnit.NANOSECONDS.toMillis(stopEnd - myGlobalStart));
|
||||
System.exit(0);
|
||||
}
|
||||
catch (Throwable e) {
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.cmdline;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -73,7 +59,7 @@ public class BuildMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
final long processStart = System.currentTimeMillis();
|
||||
final long processStart = System.nanoTime();
|
||||
final String startMessage = "Build process started. Classpath: " + System.getProperty("java.class.path");
|
||||
System.out.println(startMessage);
|
||||
LOG.info(StringUtil.repeatSymbol('=', 50));
|
||||
@@ -85,7 +71,7 @@ public class BuildMain {
|
||||
final File systemDir = new File(FileUtil.toCanonicalPath(args[SYSTEM_DIR_ARG]));
|
||||
Utils.setSystemRoot(systemDir);
|
||||
|
||||
final long connectStart = System.currentTimeMillis();
|
||||
final long connectStart = System.nanoTime();
|
||||
// IDEA-123132, let's try again
|
||||
for (int attempt = 0; attempt < 3; attempt++) {
|
||||
try {
|
||||
@@ -120,7 +106,7 @@ public class BuildMain {
|
||||
|
||||
final boolean success = future.isSuccess();
|
||||
if (success) {
|
||||
LOG.info("Connection to IDE established in " + (System.currentTimeMillis() - connectStart) + " ms");
|
||||
LOG.info("Connection to IDE established in " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - connectStart) + " ms");
|
||||
|
||||
final String projectPathToPreload = System.getProperty(PRELOAD_PROJECT_PATH, null);
|
||||
final String globalsPathToPreload = System.getProperty(PRELOAD_CONFIG_PATH, null);
|
||||
@@ -172,7 +158,7 @@ public class BuildMain {
|
||||
|
||||
JpsServiceManager.getInstance().getExtensions(PreloadedDataExtension.class).forEach(ext-> ext.preloadData(data));
|
||||
|
||||
LOG.info("Pre-loaded process ready in " + (System.currentTimeMillis() - processStart) + " ms");
|
||||
LOG.info("Pre-loaded process ready in " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - processStart) + " ms");
|
||||
}
|
||||
catch (Throwable e) {
|
||||
LOG.info("Failed to pre-load project " + projectPathToPreload, e);
|
||||
|
||||
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.cmdline;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -22,6 +8,7 @@ import org.jetbrains.jps.model.JpsModel;
|
||||
import org.jetbrains.jps.model.serialization.JpsSerializationManager;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class JpsModelLoaderImpl implements JpsModelLoader {
|
||||
private static final Logger LOG = Logger.getInstance(JpsModelLoaderImpl.class);
|
||||
@@ -42,14 +29,14 @@ public class JpsModelLoaderImpl implements JpsModelLoader {
|
||||
|
||||
@Override
|
||||
public JpsModel loadModel() throws IOException {
|
||||
final long start = System.currentTimeMillis();
|
||||
final long start = System.nanoTime();
|
||||
LOG.info("Loading model: project path = " + myProjectPath + ", global options path = " + myGlobalOptionsPath);
|
||||
final JpsModel model = JpsSerializationManager.getInstance().loadModel(myProjectPath, myGlobalOptionsPath, myLoadUnloadedModules);
|
||||
if (myModelInitializer != null) {
|
||||
myModelInitializer.run(model);
|
||||
}
|
||||
final long loadTime = System.currentTimeMillis() - start;
|
||||
LOG.info("Model loaded in " + loadTime + " ms");
|
||||
final long loadTime = System.nanoTime() - start;
|
||||
LOG.info("Model loaded in " + TimeUnit.NANOSECONDS.toMillis(loadTime) + " ms");
|
||||
LOG.info("Project has " + model.getProject().getModules().size() + " modules, " + model.getProject().getLibraryCollection().getLibraries().size() + " libraries");
|
||||
return model;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.incremental;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -721,7 +721,7 @@ public class IncProjectBuilder {
|
||||
}
|
||||
|
||||
private void clearOutputs(CompileContext context) throws ProjectBuildException {
|
||||
final long cleanStart = System.currentTimeMillis();
|
||||
final long cleanStart = System.nanoTime();
|
||||
final MultiMap<File, BuildTarget<?>> rootsToDelete = MultiMap.createSet();
|
||||
final Set<File> allSourceRoots = new THashSet<>(FileUtil.FILE_HASHING_STRATEGY);
|
||||
|
||||
@@ -833,7 +833,7 @@ public class IncProjectBuilder {
|
||||
myAsyncTasks.add(FileUtil.asyncDelete(filesToDelete));
|
||||
}
|
||||
}
|
||||
LOG.info("Cleaned output directories in " + (System.currentTimeMillis() - cleanStart) + " ms");
|
||||
LOG.info("Cleaned output directories in " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - cleanStart) + " ms");
|
||||
}
|
||||
|
||||
private static boolean isEmpty(File outputRoot) {
|
||||
|
||||
+4
-3
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.incremental.storage;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
@@ -37,6 +37,7 @@ import java.nio.file.*;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.jetbrains.jps.incremental.storage.MurmurHashingService.HASH_SIZE;
|
||||
import static org.jetbrains.jps.incremental.storage.MurmurHashingService.getStringHash;
|
||||
@@ -93,7 +94,7 @@ public class BuildTargetSourcesState implements BuildListener {
|
||||
public void reportSourcesState() {
|
||||
if (reportStateUnavailable()) return;
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
long start = System.nanoTime();
|
||||
Map<String, Map<String, BuildTargetState>> targetTypeHashMap = loadCurrentTargetState();
|
||||
|
||||
List<BuildTarget<?>> buildTargets;
|
||||
@@ -124,7 +125,7 @@ public class BuildTargetSourcesState implements BuildListener {
|
||||
catch (IOException e) {
|
||||
LOG.warn("Unable to save sources state", e);
|
||||
}
|
||||
LOG.info("Build target sources report took: " + (System.currentTimeMillis() - start) + " ms");
|
||||
LOG.info("Build target sources report took: " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + " ms");
|
||||
}
|
||||
|
||||
public void clearSourcesState() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.javac;
|
||||
|
||||
import com.intellij.execution.process.*;
|
||||
@@ -492,16 +492,16 @@ public class ExternalJavacManager extends ProcessAdapter {
|
||||
|
||||
public synchronized long getIdleTime() {
|
||||
final long idleSince = myIdleSince;
|
||||
return idleSince <= 0L? 0L : (System.currentTimeMillis() - idleSince);
|
||||
return idleSince == -42L? 0L : TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - idleSince);
|
||||
}
|
||||
|
||||
public synchronized void unlock() {
|
||||
myIdleSince = System.currentTimeMillis();
|
||||
myIdleSince = System.nanoTime();
|
||||
myIsBusy = false;
|
||||
}
|
||||
|
||||
public synchronized boolean lock() {
|
||||
myIdleSince = 0L;
|
||||
myIdleSince = -42L;
|
||||
return !myIsBusy && (myIsBusy = true);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps;
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.EmptyRunnable;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class TimingLog {
|
||||
public static final Logger LOG = Logger.getInstance(TimingLog.class);
|
||||
|
||||
@@ -25,7 +13,7 @@ public class TimingLog {
|
||||
if (!LOG.isDebugEnabled()) {
|
||||
return EmptyRunnable.INSTANCE;
|
||||
}
|
||||
final long start = System.currentTimeMillis();
|
||||
return () -> LOG.debug(name + " in " + (System.currentTimeMillis() - start) + "ms");
|
||||
final long start = System.nanoTime();
|
||||
return () -> LOG.debug(name + " in " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + "ms");
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.model.serialization;
|
||||
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
@@ -25,6 +25,7 @@ import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.intellij.testFramework.assertions.Assertions.assertThat;
|
||||
@@ -290,10 +291,10 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase {
|
||||
}
|
||||
|
||||
public void testLoadIdeaProject() {
|
||||
long start = System.currentTimeMillis();
|
||||
long start = System.nanoTime();
|
||||
loadProjectByAbsolutePath(PathManager.getHomePath());
|
||||
assertTrue(myProject.getModules().size() > 0);
|
||||
System.out.println("JpsProjectSerializationTest: " + myProject.getModules().size() + " modules, " + myProject.getLibraryCollection().getLibraries().size() + " libraries and " +
|
||||
JpsArtifactService.getInstance().getArtifacts(myProject).size() + " artifacts loaded in " + (System.currentTimeMillis() - start) + "ms");
|
||||
JpsArtifactService.getInstance().getArtifacts(myProject).size() + " artifacts loaded in " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + "ms");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.jps.build;
|
||||
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
@@ -24,6 +24,7 @@ import org.jetbrains.jps.service.SharedThreadPool;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.jetbrains.jps.api.CmdlineRemoteProto.Message.ControllerMessage.ParametersMessage.TargetTypeBuildScope;
|
||||
|
||||
@@ -130,7 +131,7 @@ public class Standalone {
|
||||
}
|
||||
|
||||
ConsoleMessageHandler consoleMessageHandler = new ConsoleMessageHandler();
|
||||
long start = System.currentTimeMillis();
|
||||
long start = System.nanoTime();
|
||||
try {
|
||||
runBuild(loader, dataStorageRoot, !incremental, modulesSet, allModules, artifactsList, allArtifacts, true,
|
||||
consoleMessageHandler);
|
||||
@@ -139,7 +140,7 @@ public class Standalone {
|
||||
System.err.println("Internal error: " + t.getMessage());
|
||||
t.printStackTrace();
|
||||
}
|
||||
System.out.println("Build finished in " + Utils.formatDuration(System.currentTimeMillis() - start));
|
||||
System.out.println("Build finished in " + Utils.formatDuration(TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start)));
|
||||
return consoleMessageHandler.hasErrors() ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user