前言:十五分钟Talkshow,是我将利用业余时间开展的一个活动(不定期发布),主要是我选择某些与技术或者软件工程方面有关的主题进行讲解,每次一个主题,尽可能在15分钟左右讲完。这些演讲是免费公开的,允许分发。
备注:这次是第一次录制,本来计划是十五分钟左右,没有把握好时间,后期还会在内容编排上面再做一些改进
摘要提示:
这是一个关于.NET应用程序中对于内存使用和优化的简短演讲,通过此视频,你可以了解
- }什么是内存问题
- }.NET应用程序是如何分配和释放内存
- }深入分析内存使用情况并调优
讲义地址:
http://www.xizhang.com/fmplan/resources/01/如何理解并优化.NET应用程序对内存的使用.pdf
视频地址:
http://www.tudou.com/programs/view/BhY8Q2icnAY/
范例代码:(代码可以稍作修改,请自行准备有关的Excel文件,和数据库)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ClosedXML.Excel; using System.IO; using System.Diagnostics; namespace Console { class Program { static void Main(string[] args) { UploadData(); GC.Collect(); System.Console.Read(); } private static void UploadData() { ///该软件的功能在于,读取某个文件夹里面一批EXCEL文件里面的数据,并将其插入到数据库中去 ///测试用的EXCEL文件有470个,每个文件将要读取200个左右的单元格数据,根据名称读取 var folder = "d:\\temp\\demo"; var files = Directory.GetFiles(folder, "*.xlsx"); //数据库连接 var db = new DataModelDataContext(); //准备一个计时器 var sw = new Stopwatch(); sw.Start(); System.Console.WriteLine("开始工作:" + DateTime.Now.ToString()); files.ForEach(file => { var bk = new XLWorkbook(file); var names = bk.NamedRanges; var fileName = Path.GetFileNameWithoutExtension(file); var code = fileName.Substring(0, 6); var year = short.Parse(fileName.Substring(7, 4)); var month = byte.Parse(fileName.Substring(11, 2)); names.ForEach(item => { var name = item.Name; var address = item.RefersTo; var sheet = address.Split('!')[0].Replace("'", ""); var cell = address.Split('!')[1]; var rng = bk.Worksheet(sheet).Range(cell).Cells().FirstOrDefault(); var v = !string.IsNullOrEmpty(rng.FormulaA1) ? rng.ValueCached : rng.Value.ToString(); //如果是公式的话,则用ValueCached读取(有可能是空值,即表示当前没有值,有可能是错误,这种情况应该都是以#开头,#DIV/0!,#N/A,#NAME?,#NUM!,#VALUE,#REF!,#NULL! db.ItemValues.InsertOnSubmit(new ItemValue() { Code = code, Year = year, Month = month, ItemName = name, Value = v }); }); db.SubmitChanges(); bk.Dispose(); GC.Collect(); System.Console.WriteLine(file); }); sw.Stop(); System.Console.WriteLine("结束工作:{0},耗时:{1}秒", DateTime.Now, sw.Elapsed.TotalSeconds); } } }
http://www.cnblogs.com/chenxizhang/archive/2012/02/27/2370422.html