Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,995

HOME > Java Programming > Java Forum > สงสัยครับว่าทำไม C++ มันทำไมอ่านไฟล์ช้ากว่า Java ครับ ผมเข้าใจมาว่า C น่าจะไวกว่ามาก หรือเพราะผมเขียน Code ไม่ดีครับ



 

สงสัยครับว่าทำไม C++ มันทำไมอ่านไฟล์ช้ากว่า Java ครับ ผมเข้าใจมาว่า C น่าจะไวกว่ามาก หรือเพราะผมเขียน Code ไม่ดีครับ

 



Topic : 095165



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์




คือว่าผมเขียนโปรแกรมเพื่อสำหรับอ่านไฟล์มาเป็นทีละบรรทัดครับในโปรแกรมก้อจะแสดงแค่เวลาที่เริ่มอ่าน
กับเวลาเมื่ออ่านจบ ผมเขียนโค้ดตามด้านล่างนี้ครับ ทดสอบกับไฟล์ .txt ธรรมดา ขนาดประมาณ 400MB ดูครับ
ผลลัพธ์ออกมาตามนี้ครับ

JAVA
E:\ReadFile>java -jar ReadText.jar DATABASE.txt
================================================
Start Date : อ. 14.05.2556 at 02:21:13:489
================================================
================================================
End Date : อ. 14.05.2556 at 02:21:27:516
================================================
C++
E:\ReadFile>ReadText_CPP.exe DATABASE.txt
================================================
Start Read : 14/05/2013 14:21:58
================================================
================================================
End Read : 14/05/2013 14:26:48
================================================

*ซึ่งจะเห็นได้ว่า Java เร็วกว่ามาก ผมเลยสงสัยมากครับ
พอมีคนรู้บ้างรึว่าครับว่าทำไมเวลามันต่างกันเยอะจัง


ส่วนของ Code java ครับ
Code (Java)
package readtext;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat ft = new SimpleDateFormat("E dd.MM.yyyy 'at' hh:mm:ss:SSS a");

        try {
            String file = args[0];
            System.out.println("================================================");
            System.out.println("Start Date : " + ft.format(date));
            System.out.println("================================================");

            FileInputStream fstream = new FileInputStream(file);
            // Get the object of DataInputStream
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            //Read File Line By Line
            while ((strLine = br.readLine()) != null) {
               
                String str = strLine;
                //System.out.println(strLine);
            }
            in.close();
            System.out.println("================================================");
            date = new Date();
            System.out.println("End Date : " + ft.format(date));
            System.out.println("================================================");

        } catch (Exception e) {
            System.out.println("\nFile not found!\n");
        }
    }
}


อันนี้ของ C++ ครับ
Code
#include <iostream> #include <fstream> #include <string> #include <time.h> using namespace std; const string currentDateTime(); int main(int argc,char *argv[]) { //printf("argc = %d \n",argc); //printf("argv[0] = %s \n",argv[0]); ifstream myFile; string line; if(argc == 2) { //print start read time cout<< "================================================\n"; cout<< "Start Read : "<< currentDateTime() <<endl; cout<< "================================================\n"; myFile.open(argv[1]); //myFile.open("test.txt"); while(!myFile.eof()) { //myFile>>line; getline(myFile,line); //cout<< line <<endl; } myFile.close(); //print end read time cout<< "================================================\n"; cout<< "End Read : "<< currentDateTime() <<endl; cout<< "================================================\n"; } return 0; } const string currentDateTime() { time_t now = time(0); struct tm tstruct; char buf[80]; tstruct = *localtime(&now); strftime(buf, sizeof(buf), "%d/%m/%Y %X", &tstruct); return buf; }




Tag : JAVA, C







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-05-14 15:36:57 By : ngoowmaya View : 1379 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,042 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

สังเกตุว่ามี method getline() ตัวนี้คืออะไรครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-16 06:43:15 By : mr.win
 


 

No. 2



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


อ่านข้อมูลจากไฟล์มาทีละบรรทัดครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-16 13:41:05 By : ngoowmaya
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สงสัยครับว่าทำไม C++ มันทำไมอ่านไฟล์ช้ากว่า Java ครับ ผมเข้าใจมาว่า C น่าจะไวกว่ามาก หรือเพราะผมเขียน Code ไม่ดีครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่