这种奇怪的问题,但我有困惑,所以我觉得更好问。
我的同事告诉我,如果在一个方法中,如果你多次使用会话变量,那么你应该把它放在变量中并使用它。如果我使用变量进行会话并使用它而不是一次又一次地直接使用会话变量,那么是否有任何类型的性能增强?
这是我的代码:
Public ActionResult FileUpload(HttpPostedFileBase file, string rotatestr)
{
try
{
errorLog.ProcessMessage("FileUpload Method is Started");
JavaScriptSerializer js = new JavaScriptSerializer();
int[][] rotateInfo = js.Deserialize<int[][]>(rotatestr);
if (file != null && file.ContentLength > 0)
{
string filePath = Path.Combine(Server.MapPath(General.FaxFolder +
Convert.ToString(HttpContext.Session["CurrentFile"]) + "/"),
Path.GetFileName(file.FileName));
file.SaveAs(filePath);
pdfOperation = new PdfOperationUtility();
if (System.IO.File.Exists(Server.MapPath(General.FaxFolder +
Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf")))
{
pdfOperation.PdfSourcePath = General.FaxFolder +
Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf";
}
else
{
pdfOperation.PdfSourcePath = General.FaxFolder +
Convert.ToString(HttpContext.Session["CurrentFile"]) + "/" +
Convert.ToString(HttpContext.Session["barcodeString"]) + "." + FaxFileType.pdf;
}
pdfOperation.PdfDestinationPath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + "/";
pdfOperation.PdfMearge(filePath, rotateInfo);
pdfOperation.PdfSourcePath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + "/mearge.pdf";
pdfOperation.ImageOutputPath = General.FaxFolder + Convert.ToString(HttpContext.Session["CurrentFile"]) + General.splitImageFolder;
ViewBag.filelist = pdfOperation.SplitPdfToImages(true);
}
errorLog.ProcessMessage("FileUpload Method is Completed");
return this.PartialView("_EditPdf");
}
catch (Exception ex)
{
errorLog.Write(ex);
return RedirectToAction("Index", "Error");
}
}
答案 0 :(得分:2)
如果您的意思是代替使用Convert.ToString(HttpContext.Session["CurrentFile"])
四次而不是string currentFile = (string)HttpContext.Session["CurrentFile"];
并且在其余代码中使用currentFile
更好,那么您就是对的
从性能角度来看,您不会注意到差异(您正在处理文件上传),但出于可读性和可维护性的考虑,这是非常明智的。