.NET数组的内存布局是什么?
以这个数组为例:
Int32[] x = new Int32[10];
Run Code Online (Sandbox Code Playgroud)
我知道数组的大部分是这样的:
0000111122223333444455556666777788889999
Run Code Online (Sandbox Code Playgroud)
其中每个字符是一个字节,并且数字对应于数组中的索引.
另外,我知道所有对象都有一个类型引用和一个syncblock-index,所以上面的内容可以调整为:
ttttssss0000111122223333444455556666777788889999
^
+- object reference points here
Run Code Online (Sandbox Code Playgroud)
另外,需要存储数组的长度,所以这可能更正确:
ttttssssllll0000111122223333444455556666777788889999
^
+- object reference points here
Run Code Online (Sandbox Code Playgroud)
这完整吗?数组中是否有更多数据?
我问的原因是我们试图估计一个相当大的数据语料库的几个不同的内存中表示将占用多少内存,并且数组的大小变化很大,因此开销可能有一个在一个解决方案中产生巨大影响,但在另一个解决方
所以基本上,对于一个数组,有多少开销,这基本上是我的问题.
在数组坏队被唤醒之前,解决方案的这一部分是静态构建 - 一次引用 - 通常类型的事情,因此这里不需要使用可增长列表.
目前,当我想设置像maxlength和autocomplete这样的html属性时,我必须使用以下语法:
<%= Html.TextBox("username", ViewData["username"], new { maxlength = 20, autocomplete = "off" }) %>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,而无需明确设置ViewData ["用户名"]部分?换句话说,我想依赖于辅助方法的自动加载例程,而不是必须明确告诉它从ViewData加载哪个字段.
我写了这个函数
(defun test ()
(let ((str1 "foo") (str2 "bar"))
(loop for s in '(str1 str2) do (message s))))
Run Code Online (Sandbox Code Playgroud)
但它不起作用.Elisp Backtrace消息是:
调试器输入 - Lisp错误:(错误的类型参数stringp str1)
我怎样才能使它工作?
PS:以下修改版本运行完美,但我需要原始版本
(defun test1 ()
(loop for s in '("asdf" "fdsa") do (message s)))
Run Code Online (Sandbox Code Playgroud) 我尝试了很多Perl XML Parsers.我对Sablotron Parser很感兴趣,但安装在Windows机箱上真是太痛苦了.目前我已经开始使用XML :: LibXML和XML :: LibXSLT这两者似乎都做我需要的一切.
它们似乎也很标准.是否有比这更好的XML解析器?
我的内存使用量随着时间的推移而增加,重新启动Django并不适合用户.
我不确定如何分析内存使用情况,但有关如何开始测量的一些提示将非常有用.
我有一种感觉,有一些简单的步骤可以产生巨大的收益.确保'debug'设置为'False'是一个显而易见的问题.
谁能建议其他人?在低流量网站上缓存多少改进?
在这种情况下,我使用mod_python在Apache 2.x下运行.我听说mod_wsgi有点精简但在这个阶段转换会很棘手,除非我知道收益会很大.
编辑:感谢您的提示到目前为止.有关如何发现内存消耗的建议吗?是否有任何Python内存分析指南?
另外如上所述,有一些事情会让切换到mod_wsgi变得棘手,所以我想知道在向这个方向前进之前我可以期待的收益.
编辑: Carl在这里发布了一个稍微更详细的回复,值得一读:Django部署:削减Apache的开销
编辑: Graham Dumpleton的文章是我在MPM和mod_wsgi相关的东西上发现的最好的文章.我很失望,没有人可以提供有关调试应用程序本身的内存使用情况的任何信息.
最终编辑:我一直在与Webfaction讨论这个问题,看看他们是否可以协助重新编译Apache,这是他们在这个问题上的说法:
"我真的不认为你会通过切换到MPM Worker + mod_wsgi设置获得很多好处.我估计你可以节省大约20MB,但可能没有多少."
所以!这让我回到原来的问题(我仍然不是明智的).如何确定问题所在?这是一个众所周知的格言,如果不进行测试就无法优化,看看你需要优化的地方,但是关于测量Python内存使用量的教程很少,而且根本没有针对Django的内容.
感谢大家的帮助,但我认为这个问题仍然存在!
另一个最终编辑;-)
我在django-users列表中询问了这个问题,得到了一些非常有帮助的回复
老实说,有史以来最后一次更新!
这刚刚发布.可能是最好的解决方案:使用Pympler分析Django对象大小和内存使用情况
这是python中多线程服务器和客户端的源代码.
在代码客户端和服务器完成作业后关闭连接.我希望保持连接存活并通过相同的连接发送更多数据,以避免每次关闭和打开套接字的开销.
以下代码来自:http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/1/
import pickle
import socket
import threading
# We'll pickle a list of numbers:
someList = [ 1, 2, 7, 9, 0 ]
pickledList = pickle.dumps ( someList )
# Our thread class:
class ClientThread ( threading.Thread ):
# Override Thread's __init__ method to accept the parameters needed:
def __init__ ( self, channel, details ):
self.channel = channel
self.details = details
threading.Thread.__init__ ( self )
def run ( self ):
print 'Received connection:', …Run Code Online (Sandbox Code Playgroud) 如何在ASP.NET MVC中提供favicon.ico的最终/最佳建议是什么?
我目前正在做以下事情:
在RegisterRoutes方法的最开头添加一个条目:
routes.IgnoreRoute("favicon.ico");
Run Code Online (Sandbox Code Playgroud)将favicon.ico放在我的应用程序的根目录中(这也将是我的域的根目录).
我有两个问题:
Content和他们处于同一水平的地方真是太狡猾了Controllers.这个IgnoreRoute("favicon.ico")陈述是否足够 - 或者我应该如Phil Haack的博客文章中所讨论的那样做.我不知道曾经在根目录以外的任何目录中看到过favicon.ico的请求 - 这会使这个变得不必要(但知道如何去做是很好的).
routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
Run Code Online (Sandbox Code Playgroud)这是我一直在寻找的东西,但我还没有找到任何具体的信息或好的例子.比方说,我有一堆未连接的对象(例如三角形条).渲染这些的有效方法是什么?
我听说过在一个VBO中放置几个对象来减少openGL调用,但是没有看到如何做到这一点的正确例子.我也看过与这个想法相矛盾的帖子.所以现在,我大多只是困惑.
我更喜欢尽可能少的正式定义和简单的数学.
algorithm complexity-theory big-o computer-science time-complexity