คือตอนนี้ผมได้เขียนแอพเก็บค่า temp ชุดนึง แต่ส่งไปเก็บที่table temp บน mysql เลย ซึ่งบางครั้งรู้สึกว่าหน่วงๆครับ เลยจะลองเก็บไว้ที่ array บน obj-c อย่างเดียวดูเผื่อจะลื่นขึ้น แต่ต้องแก้โค๊ดค่อนข้างเยอะ เลยอยากรู้ว่ามีวิธีวัดเทียบกันไหมครับบน xcode
ขอบคุณครับ
วิธีมีมั้ยไม่รู้ แต่ระหว่าง
lancaster Mon, 16/12/2013 - 01:30
วิธีมีมั้ยไม่รู้ แต่ระหว่าง ram กับ mysql (ต่อให้ใช้ memory engine ก็เถอะ)
ยังไง ram ก็เร็วกว่ามหาศาลลลลลลลลลลลลลลลลลลลครับ
ตรง Menu ครับ Xcode=>Open
naiaong Mon, 16/12/2013 - 07:13
ตรง Menu ครับ
Xcode=>Open Tools Developer=>Instruments
เรื่อง Performance
ถ้ารูปจะเก็บเป็น cache image cache แบบ URL ครับ
Object array จะเก็บใน Ram
temp ผมไม่แน่นใจว่าคุณเก็บอะไรนะครับเลยสามารถบอกตรงๆได้ครับ
เรื่อง Performance มันต้องดูทั้งการเขียน code processและแสดงผล
ถ้าผมรู้ว่า หน้าจอแสดงอะไรรูปแบบอะไร ถ้าส่งข้อมูลกันช้าระหว่าง iPhone server ส่งแบบไหน
มันมีวิธีแก้อยู่ครับ
โชคดีครับผม Happy coding
database MySQL
addib2010 Mon, 16/12/2013 - 10:37
database MySQL นี่คือเก็บข้อมูลผ่านเซิฟเวอร์หรือเปล่าครับ ถ้าใช่ก็น่าจะหน่วงตรงนี้แหละครับ
ใช่ครับ mysql
lithian Mon, 16/12/2013 - 11:09
ใช่ครับ
mysql ผมลองเทสกับทั้งบน server ที่อยู่ในออฟฟิส และบน hosting ก็หน่วงๆ (แต่เป็นบางครั้ง) เหมือนกันเลยครับ
ส่วน Instruments เคยลองเข้าไปแล้วเจอแต่ของ cpu/ram เด่วจะลองไล่หาส่วนของ url ดูนะครับ
ขอบคุณมากครับ
ค่าเก็บเป็นแค่ Temp หรือ
addib2010 Mon, 16/12/2013 - 11:59
ค่าเก็บเป็นแค่ Temp หรือ Cache เก็บที่ Memory ดีกว่าครับ แต่ถ้าเก็บค่าไว้ใช้หลายๆ ครั้ง ลองใช้เป็น SQLite Database เก็บที่ตัว Client ก็ได้ครับ
ลืมนึกถึง SQLite Database
lithian Mon, 16/12/2013 - 12:31
In reply to ค่าเก็บเป็นแค่ Temp หรือ by addib2010
ลืมนึกถึง SQLite Database ไปเลยครับ (จริงๆ ค่าบางอย่างตอนนี้ผมก็เก็บไว้ใน SQLite Database อยู่แล้วด้วย)
ความเร็วของ SQLite Database น่าจะอยุ่ระหว่าง ram กับ mysql รึป่าวครับ (เร็วสุด Ram > SQLite Database > MySQL)
ขอบคุณครับ
ใช่ครับ
addib2010 Mon, 16/12/2013 - 16:09
In reply to ลืมนึกถึง SQLite Database by lithian
ใช่ครับ
ถ้าเผื่อ update ผ่าน server
PandaBaka Tue, 17/12/2013 - 00:03
ถ้าเผื่อ update ผ่าน server ด้วยแนะนำให้ปล่อยจาก server เป็น json ยัดใส่ xcode เลยน่าจะดีกว่า
ส่วน Object C จริงๆ แล้วมันไม่จำเป็นต้องเอาไปยัดใน SQLite ก็ได้ครับ
จะใช้วิธีหักดิบเอา NSPredicate ไปหาใน array ตรงๆ เลยก็ได้ speed เท่ากัน
และถ้าเผื่อโครงสร้างฐานข้อมูลเปลี่ยนบ่อยด้วยแนะนำให้โยน SQLite ทิ้งไปเลย เพราะ เปลี่ยนโครงสร้างที App ที่ update มันจะ error แนะนำให้เอามาใส่พวก Archiver แทน
ปล.ถ้าข้อมูลเกิน 30000 record แนะนำให้ทำ sectionIndex array ด้วยครับ ไม่งั้นอืด
ผมไม่แน่นใจว่าหน่วงแบบไหนนะคร
naiaong Tue, 17/12/2013 - 08:27
ผมไม่แน่นใจว่าหน่วงแบบไหนนะครับ เพราะถ้าเขียนแบบ asynchronous
iOS เดี๋ยวนี้เขียนแบบนี้ง่ายนะครับ
การโหลดข้อมูลระหว่างผมใช้ asynchronous หมดแหละครับ ยกเว้น เช่นข้อมูลการขาย
ถ้าเขียนแบบนี้รับรองว่าไม่มีหน่วงเพราะไม่ต้องรอ ถ้าเขียนแบบ synchronous ถ้าหน่วงเป็นธรรมดาครับ
เรื่อง Server Client ต้องดูว่า ช้าที่ server หรือ client ด้วยครับ
ถ้า server เร็ว ปกติจะเร็วถ้ามันไม่ไปช้าพวก process บน server (Fake ข้อมูลชักชุดแล้วส่งกลับเลยครับ ไม่ต้องผ่าน mysql) ก็มาดู Serializing บน iPhone นะครับว่ามันช้าหรือเปล่าว
https://github.com/johnezang/JSONKit
การค้นหาก็เหมือนข้างบนครับ NSPredicate จาก Array
ระวังนิดหนึ่งนะครับ ถ้าใช้ loop ก็อย่าใช้ NSPredicate ถ้าเอา
for loop
{
NSPredicate
} ช้าครับ
ลองดูตัวนี้นะครับไม่ยากครับ
https://www.newrelic.com
โชคดีครับ