Java 코드 효율성 향상
1. 데이터베이스 연결, 스레드 등 일부 시스템 자원을 탱크에 넣는다.standalone의 응용에서 데이터베이스 연결 탱크는 일부 오픈된 연결 탱크를 사용하여 실현할 수 있다. 예를 들어 C3P0, proxool과 DBCP 등이다. 용기에서 실행되는 응용은 서버가 제공하는 DataSource를 사용할 수 있다.스레드 풀은 JDK 자체에서 제공하는java를 사용할 수 있습니다.util.concurrent.ExecutorService.
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
public class JavaThreadPool {
public static void main(String[] args) {
ExecutorService pool = Executors.newFixedThreadPool(2);
Thread t1 = new MyThread();
Thread t2 = new MyThread();
Thread t3 = new MyThread();
Thread t4 = new MyThread();
Thread t5 = new MyThread();
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
pool.shutdown();
}
}
class MyThread extends Thread {
public void run() {
System.out.println(Thread.currentThread().getName() + "running....");
}
}
2. 네트워크 비용을 줄이고 데이터베이스나 원격 서비스와 상호작용할 때 가능한 한 여러 번 호출을 한 번 호출에 통합한다.3, 자주 방문하는 외부 자원인cache를 메모리에 저장하고 간단하게static의hashmap을 사용하여 응용 프로그램이 시작될 때 불러올 수 있으며 OSCache와Ehcache 등 원본적인cache 프레임워크를 사용할 수 있습니다.자원과의 동기화는 정기적인 폴링과 외부 자원 갱신 시 주동적으로 통지하는 것을 고려할 수 있다.또는 자신이 쓴 코드에 인터페이스 (명령 방식 또는 인터페이스 방식) 를 남겨 수동으로 동기화합니다.
4, IO 조작을 최적화하고 JAVA가 파일을 조작할 때 InputStream and OutputStream, Reader and Writer 두 종류로 나뉘는데 stream의 방식은 빠르다. 후자는 주로 문자를 조작하기 위해 사용되고 문자가 ASCII일 때stream의 방식으로 효율을 높일 수 있다.JDK1.4 이후의 니오는 io보다 효율이 좋다.
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File("d:/temp/test.txt")));
out.write("abcde".getBytes());
out.flush();
out.close();
Buffered Input Stream, Buffered Output Stream, Buffered Reader, Buffered Writer를 사용하여 디스크에 직접 액세스하는 횟수를 줄입니다.
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
while (br.readLine() != null) count++;
5 빈번한 new 대상을 사용하지 말고 전체 응용 프로그램에 하나의 실례만 존재하는 클래스에 대해 단일 모드를 사용합니다.String 연결 작업에는 StringBuffer 또는 StringBuilder를 사용합니다.utility 형식의 클래스는 정적 방법으로 접근합니다.6. 잘못된 방식을 사용하지 않는다. 예를 들어 Exception은 방법을 제어할 수 있지만 Exception은 stacktrace의 소모 성능을 보존해야 한다. instanceof를 사용하여 조건 판단을 하지 말고 가능한 한 비례적인 조건 판단 방식을 사용해야 한다.ArrayList가 Vector보다 성능이 좋은 JAVA에서 효율성이 높은 클래스를 사용합니다.
7, 성능에 대한 고려는 시스템 분석과 디자인 초기에 고려해야 한다.
한 마디로 하면 하나의 시스템이 실행될 때의 성능은 CPU, Memory, IO 등 세 가지 주요 측면에서 최적화를 고려하는 것이다.불필요한 CPU 소모를 줄이고 불필요한 IO 작업을 줄이며 메모리 이용 효율을 높인다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSON의 모든 KEY 가져오기JSON의 모든 KEY를 반복적으로 이동합니다. JSON 형식은 다음과 같습니다. {"username":"tom", "age":18,address":[{"province":"상하이시"}, {"city":"상하이시"}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.