으로 JSON에 내 데이터 집합을 serialize하려면. 여기 C#에서 JSON으로 JSON 직렬화 가속
내 ASMX의 코드 조각은 여기 [WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetProviderMemberDetail(string jsonString)
{
BPMember bp = new BPMember();
List<BOProvider> listProvider = bp.GetProviderMemberDetail(jsonString);
return ConvertToSerializedJson(listProvider);
}
가 ConvertToSerializedJson 내가 직렬화해야 할 데이터의 양이
public string ConvertToSerializedJson(Object listBO)
{
string jsonReturn = String.Empty;
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = Int32.MaxValue;
jsonReturn = serializer.Serialize(listBO);
return jsonReturn;
}
을 무엇을하고있는 객체를 직렬화하는 것은 약, 200.000 많이 데이터.
이 방법을 시도했지만 브라우저가 응답을 얻지 못하고 응답이 완료되지 않았습니다. 완료하려면 6 분 정도 기다려야합니다.
두 번째 시도, 나는 이
using Newtonsoft.Json;
그리고 조금 속도를
return JsonConvert.SerializeObject(listProvider);
와 시리얼 코드를 변경을 추가 Newtonsoft.Json에서 시리얼 기능을 시도했지만 브라우저를 만든다 거의 끊어 버린다. 모든 직렬화를 완료하는 데 4 분이 걸립니다.
질문은 어떻게 직렬화 작업을 빠르게 할 수 있습니까? 내 쿼리는 쿼리 실행을 끝내고 DB에서 데이터를 검색하는 데 4 초 밖에 걸리지 않습니다. 오랜 시간이 걸리는 것은 직렬화 프로세스입니다. 이보다 더 빠르게 실행할 수있는 함수가 있습니까? 이름 라이브러리 또는 기능과 벤치 마크를 게시하십시오. 중요한 변경 사항이 있으면이 게시물을 업데이트 할 것입니다.
건배.
는 업데이트] 이것이 내가 너희들을 사랑하는 이유는 당신이 친절한 사람으로부터 조언, 속도를 가지고 있으며, 여기에 내가 조금 "조정할"것들이다.
@Saravanan이 말했듯이, 사용하지 않은 (또는 빈도가 거의없는) BO는 모두 줄였습니다. 그것은 성공적인 조정이었습니다. 300 초 (5 분) ~ 18 초.
@sanguaire가 명시한대로 fastJSON 라이브러리 (download here)를 사용하고 dll을 컴파일하고 프로젝트에 대한 참조를 추가하고 속도를 조금 높입니다.
나를 위해 200.000 데이터를 검색하는 데 필요한 시간은 약 14 초에서 18 초입니다. 이것은 17columns를 가진 나의 기준이다.
bo 객체의 크기와 중첩 정도는 무엇입니까? – Saravanan
@Saravanan 50 개의 속성을 가지고 있으며,'code {get; 세트; }'모든 회원들에게. 그것은 50 개의 속성을 가지고 있지만, 제 경우에는 10 개의 속성 만 사용합니다. 속성 수에 영향이 있습니까? 그래서 현재 BO 멤버 객체가 내 팀 사용을 위해 새 팀 멤버를 만들 것입니다. – WhiteCrow
분명히 영향을 미칠 것입니다 ... 또한 속성이 단순한 유형이라고 생각합니다 ... 도움이 될만한 경우 – Saravanan