কাই, আমি এমন একটি প্রোগ্রাম সরবরাহ করেছি যা থ্রেড ব্যবহার করে আপনি যা করতে চান তা করবে। এটি নিম্নলিখিত শর্তাদির অধীনে লাইসেন্সযুক্ত: আপনার প্রতি সিপিইউ কোরে প্রতি ঘন্টা আপনাকে আমাকে 000 0.0001 দিতে হবে। প্রতিটি ক্যালেন্ডার মাসের শেষে ফি প্রদানযোগ্য। আপনার প্রারম্ভিক সুবিধার জন্য আমার পেপাল অ্যাকাউন্ট বিশদ জন্য আমার সাথে যোগাযোগ করুন।
using System;
using System.Collections.Generic;
using System.Linq;
namespace GuidCollisionDetector
{
class Program
{
static void Main(string[] args)
{
//var reserveSomeRam = new byte[1024 * 1024 * 100]; // This indeed has no effect.
Console.WriteLine("{0:u} - Building a bigHeapOGuids.", DateTime.Now);
// Fill up memory with guids.
var bigHeapOGuids = new HashSet<Guid>();
try
{
do
{
bigHeapOGuids.Add(Guid.NewGuid());
} while (true);
}
catch (OutOfMemoryException)
{
// Release the ram we allocated up front.
// Actually, these are pointless too.
//GC.KeepAlive(reserveSomeRam);
//GC.Collect();
}
Console.WriteLine("{0:u} - Built bigHeapOGuids, contains {1} of them.", DateTime.Now, bigHeapOGuids.LongCount());
// Spool up some threads to keep checking if there's a match.
// Keep running until the heat death of the universe.
for (long k = 0; k < Int64.MaxValue; k++)
{
for (long j = 0; j < Int64.MaxValue; j++)
{
Console.WriteLine("{0:u} - Looking for collisions with {1} thread(s)....", DateTime.Now, Environment.ProcessorCount);
System.Threading.Tasks.Parallel.For(0, Int32.MaxValue, (i) =>
{
if (bigHeapOGuids.Contains(Guid.NewGuid()))
throw new ApplicationException("Guids collided! Oh my gosh!");
}
);
Console.WriteLine("{0:u} - That was another {1} attempts without a collision.", DateTime.Now, ((long)Int32.MaxValue) * Environment.ProcessorCount);
}
}
Console.WriteLine("Umm... why hasn't the universe ended yet?");
}
}
}
PS: আমি সমান্তরাল এক্সটেনশান লাইব্রেরি চেষ্টা করে দেখতে চেয়েছিলাম। এটা সহজ.
এবং নিয়ন্ত্রণ প্রবাহ হিসাবে OutOfMemoryException ব্যবহার করা ঠিক ভুল অনুভব করে।
সম্পাদনা
ঠিক আছে, মনে হয় এটি এখনও ভোট আকর্ষণ করে। সুতরাং আমি জিসি.কিপএলাইভ () সমস্যাটি স্থির করেছি। এবং এটি সি # 4 দিয়ে চালানোর জন্য পরিবর্তন করে।
এবং আমার সমর্থন শর্তাদি পরিষ্কার করতে: সমর্থনটি কেবল ২৮ / ফেব্রুয়ারী / ২০১০ এ উপলব্ধ। দয়া করে কেবলমাত্র সেই দিনটিতে সমর্থন অনুরোধ করতে একটি টাইম মেশিন ব্যবহার করুন।
সম্পাদনা 2
সর্বদা হিসাবে, জিসি মেমরি পরিচালনার ক্ষেত্রে আমার চেয়ে আরও ভাল কাজ করে; এটি করার ক্ষেত্রে পূর্বের যেকোনো প্রচেষ্টা ব্যর্থ হওয়ার জন্য ডومমড হয়েছিল।