懒惰地初始化AutoMapper(Lazily initializing AutoMapper)

我一直在ASP.NET 4.5 Webforms应用程序上做一些性能统计,在初始部署后初始启动时看起来有些迟钝。

我注意到的一点是创建AutoMapper地图确实需要一些时间。

由于这些地图只是很少使用,我想知道我是否可能“延迟”创建这些地图,直到他们第一次需要它们 - 这是一种“懒惰的初始化”。

在这种情况下,我必须有一些“非破坏性”(例如,没有抛出异常)的方式来检查给定的地图是否存在 - 如果在AutoMapper中有类似的东西?

谢谢!


I've been doing some performance stats on an ASP.NET 4.5 Webforms app, which seems a bit sluggish on initial startup after a fresh deployment.

One of the points I noticed is that creating the AutoMapper maps does take some time.

Since those maps are only used rather rarely, I was wondering if I could possibly "delay" creating those maps until the first time they're needed - sort of a "lazy initialization".

In that case, I would have to have some "non-destructive" (e.g. without throwing an exception) way of checking whether or not a given map exists - if there something like that in AutoMapper?

Thanks!


原文:https://stackoverflow.com/questions/33640358
2024-05-06 07:05

满意答案

你不完全适合Zip的工作。

试试这个片段:

        if (entry.getName().equals("xl/worksheets/sheet1.xml"))
        {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            IOUtils.copy(zipInput, bos);
            String xml = bos.toString();
            assert xml.contains("A1");
            assert xml.contains("B2");
            assert xml.contains("C3");
            break;
        }

You not exactly rigth work with Zip.

Try this snippet:

        if (entry.getName().equals("xl/worksheets/sheet1.xml"))
        {
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            IOUtils.copy(zipInput, bos);
            String xml = bos.toString();
            assert xml.contains("A1");
            assert xml.contains("B2");
            assert xml.contains("C3");
            break;
        }

相关问答

更多

使用java.util.zip。*解压缩使用Apache POI创建的xlsx blob时失败(Failure when using java.util.zip.* to unzip an xlsx blob created with Apache POI)

你不完全适合Zip的工作。 试试这个片段: if (entry.getName().equals("xl/worksheets/sheet1.xml")) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); IOUtils.copy(zipInput, bos); String xml = bos.toString(); ...

读取XLSX工作簿时,Apache POI抛出IOException(Apache POI throwing IOException when reading XLSX workbook)

问题很简单: is = new FileInputStream("/mydata/myworkbook.xlsx"); is.close(); 您在将输出流传递给构造函数之前关闭它,并且无法读取它。 只需删除这里的is.close()来解决问题,因为它将在最后的finally语句中清理。 The problem is simple: is = new FileInputStream("/mydata/myworkbook.xlsx"); is.close(); You are closing ...

使用apache-poi java在xlsx文件上无效的验证(Validations not working on xlsx file using apache-poi java)

得到了答案。 事实证明,您必须在XSSF中明确设置警报框。 对于我的代码示例,它将遵循: validation.setShowErrorBox(true); 所以对于以下验证 DataValidationHelper dataValidationHelper = spreadsheet.getDataValidationHelper(); DataValidationConstraint constraint = dataValidationHelper.createDateConstraint...

如何使用java apache poi从xlsx文件的特定单元获取值(How to get value from a specific cell of an xlsx file using java apache poi)

例如,要获得第一张工作表的E10: wb.getSheetAt(0).getRow(9).getCell(4); 注意:因为索引是基于空值的,所以减一。 您也可以使用这种方便的方法将E映射到4。 wb.getSheetAt(0).getRow(9).getCell(CellReference.convertColStringToIndex("E")); For example, to get E10 of the first worksheet: wb.getSheetAt(0).getRo...

使用Apache POI打开xls和xlsx(Open xls and xlsx with Apache POI)

这将做的工作: Workbook wb = WorkbookFactory.create(myExcelFile); 然后你可以检查工厂创建的确切类型: if (wb instanceof HSSFWorkbook) { // do whatever } else if (wb instanceof SXSSFWorkbook) { // do whatever } else if (wb instanceof XSSFWorkbook) { // do whatever...

Oracle - 直接使用XLSX数据的最佳方式,而不是使用Apache POI(Oracle - best way to use XLSX data directly, not using Apache POI)

一种方法是将Excel文件从xls文件转换为csv文件,然后可以使用Oracle外部表。 One method would be to convert your Excel file from an xls file to a csv file and then you can use an Oracle external table.

Apache POI阅读xlsx NPE(Apache POI Read xlsx NPE)

所有行都没有Row对象。 考虑一下,当您在Excel中启动新电子表格时,最多可以有1,048,576行,但保存空电子表格会导致文件大小变小。 也就是说,对不存在的行的引用将导致绝对巨大的文件。 只有在存在与它们相关联的某种内容时才应存储对行的引用 - 任何单元格值,格式,边框等。行可能显示为空白但有一些格式或者可能用于使内容现在消失。 Cell连续有一个类似的论点。 对于甚至不使用的单元格,没有理由使用Cell引用。 但是你可以删除Cell的内容,而不是删除Cell本身; 它可以是CELL_TYP...

使用POI从.xls升级到.xlsx(Upgrading from .xls to .xlsx with POI)

我有一个非常相似的问题,请看看强制浏览器在JAVA中下载一个docx文件会生成一个损坏的文档 。 关键是要添加响应的Content-Length标头。 尝试使createExcelWorkbookPosition返回文件而不是XSSFWorkbook : public static File createExcelWorkbookPosition(String BsnsDate) throws Exception { File file = new File("workbook.xls...

Apache poi XLSX到XLS(Apache poi XLSX to XLS)

我同意中心答案,但我想添加几行代码。 您说您正在使用XSSF实现。 因此,对于要保存的工作簿,请执行以下更改:更改XSSFWorkbook x = new XSSFWorkbook(); 到Workbook x = new HSSFWorkbook(); 从org.apache.poi.ss.usermodel.Workbook;导入Workbook的位置org.apache.poi.ss.usermodel.Workbook; 同样改变XSSFRow实例化 XSSFRow r = newXSSF...

Apache POI创建xlsx文件,以后无法打开。(Apache POI creates xlsx file which it can't open later. Zip bomb detected)

只需按照错误消息的建议操作,并通过不同的方式设置限制 ZipSecureFile.setMinInflateRatio(0) 您似乎有一个相当特殊的用例,它生成的文件与恶意用户可能用来使服务器崩溃,使用CPU或内存不足的文件相似。 为了避免这种情况,Apache POI具有此限制,但可以根据需要进行不同的设置。 因此,如果文件不是来自不受信任的用户,则可以轻松调整这些限制以避免出现错误消息。 Excel或LibreOffice可能比Apache POI更优化文件内容,从而生成未达到这些限制的文件。...

相关文章

更多

初始化-Oceanus编码调用

首先调用 Oceanus 初始化方法,加载配置进行各项的初始化: Oceanus.init(&quot ...

MultiComboBox 多选以及初始化问题

我从网上down了一个MultiComboBox.js文件,在使用过程中出现以下问题: 1.下载了一 ...

二维数组的初始化!

int num[3][4]; for(i=0;i <3;i++) for(t=0;t &lt ...

初始化activiti数据库

首先要把activiti相关的环境加进来 如果是不是maven项目,下载activiti的压缩包 ...

初始SolrJ开发, schema.xml的配置与服务初始化.

schema.xml位于solr/collection1/conf/目录下,是Solr中用户定义字段类 ...

请问关于Ext对数据进行edit操作时的初始化问题

一般edit的时候,会把之前所有的值都显示在页面上对吧,这些值是怎么传过来的啊?我用JSON传过来觉得 ...

Rails 下拉框 初始化设定值

<%= collection_select (:morganization,:KYOTEN_CD ...

使用配置文件初始化activiti数据库

把 activiti-rest\WEB-INF\classes\ activiti-custom-co ...

ValueInjecter----最好用的OOM(以微信消息转对象举例)

  使用数据实体的好处我这里就不多说了,但大家享受这些好处的时候,难免也对那些琐碎的赋值代码感到厌烦, ...

Java序列化

Java序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列 ...

最新问答

更多

获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)

我用Google搜索了一个解决方案。 “EnumDisplayModeProvider”是我自己设置网站的各种模式的枚举。 public EnumDisplayModeProvider GetDisplayModeId() { foreach (var mode in DisplayModeProvider.Instance.Modes) if (mode.CanHandleContext(HttpContext)) {

如何通过引用返回对象?(How is returning an object by reference possible?)

这相对简单:在类的构造函数中,您可以分配内存,例如使用new 。 如果你制作一个对象的副本,你不是每次都分配新的内存,而是只复制指向原始内存块的指针,同时递增一个也存储在内存中的引用计数器,使得每个副本都是对象可以访问它。 如果引用计数降至零,则销毁对象将减少引用计数并仅释放分配的内存。 您只需要一个自定义复制构造函数和赋值运算符。 这基本上是共享指针的工作方式。 This is relatively easy: In the class' constructor, you allocate m

矩阵如何存储在内存中?(How are matrices stored in memory?)

正如它在“熵编码”中所说的那样,使用Z字形图案,与RLE一起使用,在许多情况下,RLE已经减小了尺寸。 但是,据我所知,DCT本身并没有给出稀疏矩阵。 但它通常会增强矩阵的熵。 这是compressen变得有损的点:输入矩阵用DCT传输,然后量化量化然后使用霍夫曼编码。 As it says in "Entropy coding" a zig-zag pattern is used, together with RLE which will already reduce size for man

每个请求的Java新会话?(Java New Session For Each Request?)

你是如何进行重定向的? 您是否事先调用了HttpServletResponse.encodeRedirectURL()? 在这里阅读javadoc 您可以使用它像response.sendRedirect(response.encodeRedirectURL(path)); The issue was with the path in the JSESSIONID cookie. I still can't figure out why it was being set to the tomca

css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)

我认为word-break ,如果你想在一个单词中打破行,你可以指定它,这样做可以解决问题: .column { word-break:break-all; } jsFiddle演示。 您可以在此处阅读有关word-break属性的更多信息。 I think word-break, with which you can specify if you want to break line within a word, will do the trick: .column { word-break

无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)

我认为您忘记在分类时间内缩放输入图像,如train_test.prototxt文件的第11行所示。 您可能应该在C ++代码中的某个位置乘以该因子,或者使用Caffe图层来缩放输入(请查看ELTWISE或POWER图层)。 编辑: 在评论中进行了一次对话之后,结果发现在classification.cpp文件中错误地删除了图像均值,而在原始训练/测试管道中没有减去图像均值。 I think you have forgotten to scale the input image during cl

xcode语法颜色编码解释?(xcode syntax color coding explained?)

转到: Xcode => Preferences => Fonts & Colors 您将看到每个语法高亮颜色旁边都有一个简短的解释。 Go to: Xcode => Preferences => Fonts & Colors You'll see that each syntax highlighting colour has a brief explanation next to it.

在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)

你考虑过第三方拼写检查吗? 您可以将在C#中开发的自定义WinForms控件插入访问数据库吗? VB6控件怎么样? 如果你能找到一个使用第三方库进行拼写检查的控件,那可能会有效。 Have you considered a third party spell checker? Can you insert a custom WinForms controls developed in C# into an access database? What about a VB6 control? If

从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)

我有同样的问题,因为我在远程服务器上有两个图像,我需要在每天的预定义时间复制到我的本地服务器,这是我能够提出的代码... try { if(@copy('url/to/source/image.ext', 'local/absolute/path/on/server/' . date("d-m-Y") . ".gif")) { } else { $errors = error_get_last(); throw new Exception($err

从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))

我不确定我完全明白你在说什么。 你能编辑你的帖子并包含你正在做的Subversion命令/操作的特定顺序吗? 最好使用命令行svn客户端,以便容易为其他人重现问题。 如果您只是想获取文件的旧副本(即使该文件不再存在),您可以使用如下命令: svn copy ${repo}/trunk/moduleA/file1@${rev} ${repo}/trunk/moduleB/file1 其中${repo}是您的存储库的URL, ${rev}是您想要的文件的版本。 这将恢复该文件的旧版本,包括最高版本