Category Archives: Benchmark Testing

Benchmark on stuff

Benchmark Between to Methods that Resize Array in C#

Prob: There is two methods to change size of array in C#. Using a template of a Benchmark program from this informative site, I checked the two ways:

Array.Resize  VS  Array.CopyTo VS Loop

Conclusion: sometime build it your self is not that better then using the build-in commands…

Array.Resize took 30253 ms
Arryay.CopyTo took 29649 ms
Loop took 58323 ms

Solution:

Here is the code that I use

class Program
{
public static void AddCell1(ref double[] vector,int num)
{
int size = vector.Length;
Array.Resize(ref vector,size+1);
vector[size] = num;
}
//————————————————-

public static void AddCell2(ref double[] vector,int num)
{
double[] tempVec = new double[vector.Length+1];
vector.CopyTo(tempVec,0);
tempVec[vector.Length] = num;
vector = tempVec;
}
//————————————————-

public static void AddCell3(ref double[] vector,int num)
{
double[] tempVec = new double[vector.Length+1];
for (int i = 0; i < vector.Length ; i++) {
tempVec[i] = vector[i];
}
tempVec[vector.Length] = num;
vector = tempVec;
}
//————————————————-

public static void Main(string[] args)
{
Console.WriteLine(“Hello World!”);

double[] arr1 = new double[]{};
double[] arr2 = new double[]{};
double[] arr3 = new double[]{};

Stopwatch s1 = Stopwatch.StartNew();
for (int i = 0; i < 100000; i++)
AddCell1(ref arr1,i);
s1.Stop();

Stopwatch s2 = Stopwatch.StartNew();
for (int i = 0; i < 100000; i++)
AddCell2(ref arr2,i);
s2.Stop();

Stopwatch s3 = Stopwatch.StartNew();
for (int i = 0; i < 100000; i++)
AddCell3(ref arr3,i);
s3.Stop();

// TODO: Implement Functionality Here
Console.WriteLine(“{0},{1},{2}”,
s1.ElapsedMilliseconds,
s2.ElapsedMilliseconds,
s3.ElapsedMilliseconds);
Console.Write(“Press any key to continue . . . “);
Console.ReadKey(true);
}
}

פיתרון סינכרון

הפחד מנפילה חוזרת גבר על הצורך בפרטיות קיצונית…
בדקתי כמעט את כל התוכנות שנימצאות ברשימה הזאת:
https://secure.wikimedia.org/wikipedia/en/wiki/Comparison_of_online_backup_services
אחרי 8 שעות של חיפושים באינטרנט התקנה של התוכנות וניסויים העלאת קבצים וסינכרונם, להלן התוצאה:

מטרות

1. אתר שיספק מקום איכסון במחיר סביר (אני מוכן לשלם!!)
2. כל המחשבים שברשותי יסנכרנו בניהם מספר סיפריות חלקם יחלקו אותה(כל שינוי של קובץ יעודכן בכולם) 3. וחלקם יהיו סיפריות שונות שגם הם יגובו אבל לא ישתפו בניהם
4. כל שינוי באותם סיפריות יתעדכן לכולם בו זמנית
5. העלאה של ההבדל בלבד ולא כל הקובץ על כל שינוי
6. בנוסף לסנכרון קיים עותק בשרת החברה
7. תוכנת סנכרון שלא לוקחת הרבה זיכרון RAM
8. יכול לגבות/לסנכרון גם מאחורי פרוקסי או חומת אש
9. ניתן לסמן סיפריות במקומות שונים בדיסק

להלן פירוט של הניסיונות שלי עם התוכנות הבאות

SkyDrive
יתרונות: 7 גיגה מתנה, אפשרות לקנות מקום בזיל הזול, תוכנת הסנכרון לא טופסת הרבה מקום בזיכרון ועובדת ממש חלק ללא צריכה ענקית של זיכרון

חיסרון: סנכרון קבצים מתבצע מתי שבא לתוכנה לעשות את זה, או כמו שמיקרוסופט נסחו את זה באחד התשובות בפורום: הסנכרון מתבצע אוטמטית ואקראית, או בקיצור מתי שבא לו ולא אחרי ששינית את הקובץ

dropBox
אי אפשר לסכרן כמה תיקיות במקומות מסוימים, אפשר רק בסיפריה שלו אי אפשר שכמה מחשבים יקבלו דברים מסוימים וכמה לא… כולם אותו דבר כל גיגה יקר רצח

dell DataStorge
רק גיבוי לא סכרון, אפשר לגבות רק פעם ביום או ידני

memopal
אחלה דבר אבל אי אפשר לסכרן בין מחשבים

openDrive
איטי ולא עובר פרוקסים.

UbuntoOne
גיבוי סיפריה אחת בללבד וללא יכולת לגבות ספריות שהמשתמש רוצה

ASUS WebStorage
פשוט חרא

Backblaze
כל משתמש עולה ים כסף

MiMedia
איטי בצורה מחרידה ואין סיכרון בין מחשבים

CrashPlan
יופי בשביל מחשב אחד… אבל לא למה שאני צריך

כל השאר שם פשוט לא שווה הקלקות במקלדת / עכבר… גם השורה הזאת יותר שווה ממה שהם נותנים

בחירה סופית

חינם ורק לקבצים ענקיים של TRUECRYPT כי הוא עושה עידכונים בדלטות ו SUGERSYNC לכל השאר הירקות,המסמכים תמונות וכל החרטה.

בחירה סופיתאם יש לך משהו שלא שקלתי בבקשה שלח לי לינק ואם או יש ניסיון אותו