سامشيكا (معنى ملف في السنسكريتية) إعادة استخدامو سهل الاستخدام، و سريع للغاية مكتبة معالجة الملفات للغة جافا.
تم تصميمه مع التركيز القوي على Multithesply للتعامل مع مهام معالجة الملفات المكثفة في وحدة المعالجة المركزية بالتوازي ، مما يتيح الأداء العالي حتى مع الملفات الضخمة.
- 🔁 متعدد مؤشرات الترابط بالكامل – محسّن لمعالجة الملفات المتوازية.
- 🧩 API البسيط – فقط قم بتوصيل مسار الملف والمنطق.
- 📊 احصائيات وقت التشغيل الاختياري-الوقت المستغرق ، والذاكرة المستخدمة ، ومعلومات مستوى مؤشر ترابط.
- 🧪 مثالي للمعالجة والتحليل ملفات نصية كبيرة (مثل سجلات ، مجموعات البيانات).
- 🌍 ودية مفتوحة المصدر-المساهمات مرحب بها!
“-1” dir=”auto”> استخدام الحالات
تتفوق Samchika في العديد من السيناريوهات التي توفر فيها معالجة الملفات المتعددة مزايا مهمة:
- تحليل السجل ومعالجته
- عمليات ETL (المستخلص ، التحويل ، الحمل)
- معالجة مجموعة نصية كبيرة
- جيل تقرير الدُفعات
- خطوط أنابيب تحويل البيانات
- معالجة البيانات في الوقت الحقيقي
راجع دليل الأمثلة للتطبيقات التفصيلية لحالات الاستخدام هذه.
Java // تحويل ملف CSV كبير بأداء الأمثل
SmartFileProcessor.builder () .inppath ("large_dataset.csv") .outputpath ("transformed_dataset.csv".
repositories { maven { url 'https://jitpack.io' }}dependencies { implementation 'com.github.mayankpratap:samchika:1.0.0'}
“-1” dir=”auto”> 🛠 كيفية الاستخدام
“-1” dir=”auto”> الخطوة 1: استيراد المكتبة
import com.samchika.SmartFileProcessor;
“-1” dir=”auto”> الخطوة 2: رمز العميل
الفراغ الثابت العام الرئيسي (السلسلة[] args) {SmartFileProcessor Processor=SmartFileProcessor.builder () .inputpath ("input.txt") // مسار إلى الملف المراد معالجته .OutputPath ("output.txt") // مسار لكتابة الإخراج .LineProcessor (Main :: Processline) // منطق عملك لكل سطر .DisplayStats (صواب) // اختياري: عرض إحصائيات وقت التشغيل .Build () ؛ Processor.execute () ؛ }
المعيار ضد تطبيقات ساذجة Bufferreader على ملفات من مختلف الأحجام:
✅ 200 ميغابايت
✅ 1 غيغابايت
✅ 5 جيجابايت
✅ 16 جيجابايت
لوحظت تحسينات كبيرة في الأداء ، خاصة في الأنظمة متعددة النواة (أكثر من 70 ٪ من الأداء)
يتحسن الربح في الوقت المحفوظ بالمقارنة مع التعليمات البرمجية الساذجة ، حيث نزيد من حجم ملف الإدخال. أيضًا للحصول على كسب الأداء الضخم في الوقت المناسب ، يمكن التحكم في الذاكرة المستخدمة في الملفات الكبيرة (16 جيجابايت) (حوالي 800 ميغابايت).
“_blank” rel=”noopener noreferrer” HREF=”http://github.com/MayankPratap/Samchika/blob/main/images/time_memory.jpg”>”http://github.com/MayankPratap/Samchika/raw/main/images/time_memory.jpg” alt=”Perf visualization”>
تم ترخيص هذه المكتبة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا ، مما يعني أنه يمكنك استخدامها وتعديلها وتوزيعها بحرية ، حتى في التطبيقات التجارية. كل ما نطلبه هو تضمين إشعار حقوق الطبع والنشر الأصلي ونص الترخيص في أي نسخة من المكتبة أو جزء كبير منه.
استلهم هذا المشروع من:
-
شوبهام موريا (“https://github.com/complex1″> https://github.com/complex1 ) ، صديق عزيز ، نشر مكتبة JavaScript – مما أثار الدافع لفعل شيء مماثل في Java.
-
منشور LinkedIn يناقش تحديات معالجة الملفات النصية الكبيرة – والتي أعطتني فكرة حلها باستخدام واجهة برمجة تطبيقات أنيقة وهندسة متعددة المعاقين.