이번엔 Person 객체를 누가더 빨리 2000000개를 생성하고,
이거를 얼레이랑 벡터에 누가 빨리 집어놓는가를 테스트해봣슴
스윙이 훨씬 빨라서 자바는 패널티로 이름 + 나이를 name에 집어넣는대도 스윙이 더 빨랏슴ㅋ
---------------------------------------JAVA 소스 -----------------------------------------------
package view;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class DataView extends JFrame {
public DataView() {
super("DataTest");
setBounds(0, 0, 500, 500);
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
long start = System.currentTimeMillis();
Vector<Person> vPerson = new Vector<Person>();
for (int i = 0; i < 2000000; i++) {
vPerson.add(new Person("Kim"+i, i));
}
long end = System.currentTimeMillis();
String msg = String.format("%dSeconds, Last Person Name : %s, Last Person Age : %d",
(end - start) / 1000,
vPerson.get(vPerson.size() - 1).getName(),
vPerson.get(vPerson.size() - 1).getAge());
JOptionPane.showMessageDialog(this, msg);
}
public static void main(String[] args) {
new DataView();
}
}
-----------------------------------MFC 소스 ----------------------------------------------------------
class CPerson
{
private:
CString name;
int age;
public:
CPerson(CString name, int age) {
this->name = name;
this->age = age;
}
CString getName() {
return name;
}
void setName(CString name) {
this->name = name;
}
int getAge() {
return age;
}
void setAge(int age) {
this->age = age;
}
~CPerson(){}
};
void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
CTime start=CTime::GetCurrentTime();
CArray<CPerson*> arPerson;
for(int i=0;i<2000000;i++){
arPerson.Add(new CPerson(_T("Kim"),i));
}
CTime end=CTime::GetCurrentTime();
CTimeSpan t=end-start;
CString str=_T("");
str.Format(_T("%dSeconds, Last Person Name : %s, Last Person Age : %d"),
t.GetSeconds(),
arPerson.GetAt(arPerson.GetCount()-1)->getName(),
arPerson.GetAt(arPerson.GetCount()-1)->getAge());
MessageBox(str);
for(int i=0;i<arPerson.GetSize();i++){
delete arPerson.GetAt(i);
}
arPerson.RemoveAll();
CWnd::OnLButtonDown(nFlags, point);
}
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.