- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi có hơn 100 triệu chuỗi để lưu trữ trong hệ thống tệp. Cùng với chuỗi (~255Chars utf8) sẽ có hai ngày tháng và một số giá trị nguyên xác định thuộc tính của chúng.
Tôi có thể đặt chúng vào tệp CSV, nhưng nó sẽ rất lớn. Tôi có thể đặt một số tệp CSV nhỏ hơn vào thư mục con để làm cho nó nhanh hơn hoặc tôi có thể chỉ cần tạo một tệp cho mỗi chuỗi và lưu trữ chúng trong cây thư mục.
Làm cách nào để biết giải pháp nào nhanh hơn và dễ dàng hơn để duy trì/phát triển? Tôi thậm chí còn không biết chuỗi của mình thưa thớt đến mức nào; có lẽ tôi có 50 triệu chuỗi bắt đầu bằng cùng một ký tự, khiến cây kém cân bằng hơn.
Bây giờ tôi nghĩ tôi có thể tạo cấu trúc thư mục với 5 ký tự đầu tiên và sau đó đặt các tệp csv vào mỗi thư mục. Ví dụ. Chuỗi "Tôi không biết mình đang làm gì" -> "Idontknowwhatimdoing" nhập vào
/i/d/o/n/t/list.csv
Có ý tưởng nào hay hơn không? Tôi không thể sử dụng Db. Tôi đang sử dụng java để lưu trữ và php để đọc từ hệ thống tệp, nếu điều đó tạo ra sự khác biệt.
câu trả lời hay nhất
Nếu chuỗi của bạn là ASCII và bạn chỉ cần một byte để xác định mỗi ký tự (so với UTF8 trong đó một số ký tự có thể được mã hóa thành 4 byte), thì bạn chỉ có thể sử dụng kích thước cố định cho mỗi bản ghi Tệp phẳng. Nếu chuỗi của bạn thực sự yêu cầu UTF8 thì hãy chọn mã hóa kích thước cố định thay vì mã hóa kích thước thay đổi hoặc chỉ cần tìm chuỗi lớn nhất và sử dụng chuỗi đó làm kích thước cố định.
256 byte (chuỗi) + 8 byte (ngày) + 8 byte (ngày) + 8 byte (số nguyên) + 8 byte (số nguyên) = 288 byte mỗi bản ghi
100 triệu (mục nhập) * 288 byte (kích thước bản ghi) = 28,8 GB
Truy cập một tệp lớn như vậy có nghĩa là bạn phải sử dụngtập tin ánh xạ bộ nhớ, trong đó hệ điều hành chỉ chịu trách nhiệm đưa vào bộ nhớ phần tệp bạn hiện đang truy cập.
Nếu các chuỗi của bạn không được sắp xếp, điều mà bạn sẽ phải làm, một số biến thể sắp xếp hợp nhất có thể hữu ích, bạn hoàn toàn có thể sắp xếp một khối gồm 100 triệu chuỗi (có thể là 1 triệu phân vùng) và sau đó đặt 100 phân vùng được sắp xếp này được hợp nhất với nhau thành có được danh sách sắp xếp cuối cùng.
Cách tìm kiếm chuỗi sẽ là mộttìm kiếm nhị phân log N, đối với 100 triệu bản ghi, con số này sẽ là ~27 lượt đọc IO.
Về thuật toán - lưu trữ chuỗi + mô tả trong hệ thống tệp, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/34357113/
Cách sử dụng SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
Tôi mới bắt đầu sử dụng C++ và có một số kinh nghiệm về C# nên tôi có một số kinh nghiệm lập trình tổng quát. Tuy nhiên, có vẻ như tôi đã bị bắn hạ ngay lập tức. Tôi đã thử tìm kiếm trên Google để không làm mất thời gian của mọi người nhưng không có kết quả. int chính(int argc,
Câu hỏi này đã có câu trả lời: Trong Java 8, làm cách nào để chuyển đổi Bản đồ sang Bản đồ khác bằng lambda? (8 câu trả lời) Chuyển đổi Bản đồ>
Tôi đang sử dụng nút + bản ghi và tính năng chuyển đổi tích hợp để thực hiện lệnh gọi API. Tôi đã đưa ra yêu cầu sau tới Swagger http://localhost:3033/employees/sear
Tôi chưa quen với các mẫu vùng chứa C++. Tôi đã thu thập một số hồ sơ. Mỗi bản ghi có một tên duy nhất và danh sách các cặp trường/giá trị. Hồ sơ sẽ được truy cập theo tên. Thứ tự của các cặp trường/giá trị quan trọng. Vì thế tôi thiết kế nó như sau: chuỗi typedef
Tôi cần hai phương thức này nhưng j2me không có, tôi đã tìm thấy một phương thức thay thế(); nhưng đây là phương thức thay thế (chuỗi, chuỗi, chuỗi); Phương thức thứ hai là SringBuffer nhưng trong j2me thì không có.
Nếu chuỗi là bí danh của Chuỗi trong khung .net thì tại sao điều này lại xảy ra và tôi nên giải thích nó như thế nào: gõ JustAString = string
Tôi có hai danh sách (hoặc chuỗi): một danh sách lớn, một danh sách nhỏ. Tôi muốn kiểm tra xem cái lớn hơn (A) có chứa cái nhỏ hơn (B) không. Kỳ vọng của tôi như sau: Trường hợp 1. B là tập con của A A = [1,2,3] B = [1,2] chứa(A
Tôi có một vấn đề nhỏ mà dường như tôi không thể giải quyết được. Ở đây... Tôi có một đầu vào được tạo như thế này... var input = $(''); Nếu tôi làm vậy... mọi thứ đều ổn $(this).append(input);
Tôi có đoạn mã sau string[]lines = object.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
Điều này có thể thực sự đơn giản, nhưng tôi đã bị mắc kẹt trong một thời gian. Tôi đang cố gắng xuất một chuỗi và sau đó là một chuỗi kép có hai chữ số thập phân theo sau là một chuỗi khác, đây là mã của tôi. System.out.printf("Chi phí:%.2
Đây là một trong những ví dụ về cityRef.where("state", ">=", "CA").where("state", "= string từ truy vấn danh sách Cloud Firestore mà chúng tôi có tại Stack O
Tôi đang cố kiểm tra xem một chuỗi có được chứa trong một chuỗi khác hay không. Mã đằng sau rất đơn giản. Làm cách nào tôi có thể thực hiện việc này trong jquery? hàm deleteRow(locName, locID) { if
Câu hỏi này đã có câu trả lời ở đây: Cách triển khai big int trong C++ (14 câu trả lời) Đã đóng 9 năm trước. Tôi có 2 chuỗi, cả hai đều chỉ chứa số. Những con số này lớn hơn uint64_t's
Tôi có ánh xạ Dozer với các bộ chuyển đổi tùy chỉnh: com.xyz.Customer com.xyz.CustomerDAO customerName
Câu hỏi này đã có câu trả lời ở đây: Làm cách nào để so sánh các chuỗi trong Java? (23 câu trả lời) Đã đóng 6 năm trước. Tôi muốn hiểu cách nhóm chuỗi hoạt động và quy tắc một chuỗi bằng chuỗi khác là
Tôi đã đọc câu hỏi này và một số câu hỏi khác. Nhưng chúng có phần không liên quan đến câu hỏi của tôi. Đối với UILabel nếu bạn không chỉ định ? hoặc ! bạn sẽ gặp lỗi như sau: thuộc tính @IBOutlet không có tùy chọn.
Về mặt lý thuyết, phương pháp nào trong hai phương pháp này nhanh hơn và tại sao? (Con trỏ tới chuỗi phải là hằng số.) Sự khác biệt chính xác giữa đích [đếm] và *destination++ là gì? điểm đến[co
Câu hỏi này đã có câu trả lời ở đây: Đã đóng 11 năm trước Các bản sao có thể có: String.Format a.
Tôi có một Luồng tệp, bây giờ tôi muốn nhóm các từ giống nhau vào Bản đồ, điều quan trọng là tần suất từ này xuất hiện trong Luồng. Tôi biết mình phải sử dụng coll(Collector.groupingBy(..)
Tôi là một lập trình viên xuất sắc, rất giỏi!