问题列表 - 第29616页

重复文字和硬编码

我发现以下模式经常发生:

 b->last = ngx_cpymem(b->last, "</pre><hr>", sizeof("</pre><hr>") - 1);
Run Code Online (Sandbox Code Playgroud)

请注意,文字字符串使用了两次.提取物来自nginx源库.

在编译单元中遇到这些文字时,编译器应该能够合并这些文字.

我的问题是:

  1. 当在编译单元中遇到时,商业级编译器(VC++,GCC,LLVM/Clang)是否会删除此冗余?
  2. 链接目标文件时,(静态)链接器是否会删除此类冗余.
  3. 如果2适用,这种优化会在动态链接期间发生吗?
  4. 如果1和2适用,它们是否适用于所有文字.

这些问题很重要,因为它允许程序员在不损失效率的情况下进行冗长 - 即,考虑将大量静态数据模型硬连接到程序中(例如,某些低级方案中使用的决策支持系统的规则) .

编辑

2分/澄清

  1. 上面的代码由公认的"主"程序员编写.这家伙一手写了nginx.

  2. 我没有问过文字硬编码的哪种可能机制更好.所以不要偏离主题.

编辑2

我最初的例子是非常人为的和限制性的.以下代码段显示了嵌入到内部硬编码知识中的字符串文字的用法.第一个片段用于配置解析器告诉它为哪个字符串设置哪个枚举值,第二个片段通常用作程序中的字符串.我个人对此感到满意,只要编译器使用字符串文字的一个副本,并且由于元素是静态的,它们不会进入全局符号表.

static ngx_conf_bitmask_t  ngx_http_gzip_proxied_mask[] = {
   { ngx_string("off"), NGX_HTTP_GZIP_PROXIED_OFF },
   { ngx_string("expired"), NGX_HTTP_GZIP_PROXIED_EXPIRED },
   { ngx_string("no-cache"), NGX_HTTP_GZIP_PROXIED_NO_CACHE },
   { ngx_string("no-store"), NGX_HTTP_GZIP_PROXIED_NO_STORE },
   { ngx_string("private"), NGX_HTTP_GZIP_PROXIED_PRIVATE },
   { ngx_string("no_last_modified"), NGX_HTTP_GZIP_PROXIED_NO_LM },
   { ngx_string("no_etag"), NGX_HTTP_GZIP_PROXIED_NO_ETAG },
   { ngx_string("auth"), NGX_HTTP_GZIP_PROXIED_AUTH },
   { ngx_string("any"), NGX_HTTP_GZIP_PROXIED_ANY },
   { ngx_null_string, 0 }
};
Run Code Online (Sandbox Code Playgroud)

紧随其后:

static ngx_str_t  ngx_http_gzip_no_cache = ngx_string("no-cache");
static ngx_str_t  ngx_http_gzip_no_store …
Run Code Online (Sandbox Code Playgroud)

c c++ compiler-theory micro-optimization string-interning

3
推荐指数
3
解决办法
1451
查看次数

Stackoverflow就像jquery中的模态弹出窗口一样

stackoverflow使用哪个jquery模式插件(即)当我尝试关闭一个问题时?任何建议..

jquery modal-dialog

5
推荐指数
1
解决办法
1091
查看次数

Python:总是使用__new__而不是__init__?

我了解都__init____new__工作.我想知道是否有什么__init__可以做到的__new__不可以?

即可以使用__init__以下模式替换:

class MySubclass(object):
    def __new__(cls, *args, **kwargs):
        self = super(MySubclass, cls).__new__(cls, *args, **kwargs)
        // Do __init__ stuff here
        return self
Run Code Online (Sandbox Code Playgroud)

我问,因为我想让Python OO的这个方面更适合我.

python new-style-class

27
推荐指数
2
解决办法
4540
查看次数

GTK窗口动画动画?

我想自动将GTK_WINDOW移动到屏幕上.目前我有一个绘制/移动循环,但这非常不稳定.我对GTK编程(以及一般的gui编程)非常陌生.我错过了什么?

linux gtk animation

3
推荐指数
1
解决办法
1311
查看次数

如何在窗口标题栏的顶部显示菜单

我现在试着在我的WPF标题栏上显示一个像这样的菜单(左上角的橙色):

https://wiki.mozilla.org/Firefox/4.0_Windows_Theme%20_Mockups#Large_Button_Mode

我已经使用DwmExtendFrameIntoClientArea方法将航空玻璃扩展到客户区.左上角的应用程序图标不可见,我可以显示菜单,但是无法点击它,它不会打开,如果我在标题栏中放置了一个文本框,我就无法编辑它内容.我认为我的控件不在标题栏的顶部.如何在标题栏上绘制它们,以便菜单可点击?

c# wpf

7
推荐指数
1
解决办法
1873
查看次数

为什么将参数传递给CSS和JavaScript链接文件,如src ="../ cnt.js?ver = 4.0"?

当我看到很多站点的源代码时,参数被传递给链接文件(CSS/JavaScript).

在Stack Overflow源代码中,我得到了

<script type="text/javascript" src="http://sstatic.net/js/master.js?v=55c7eccb8e19"></script> 
Run Code Online (Sandbox Code Playgroud)

为什么master.js?v=55c7eccb8e19用?

我确信JavaScript/CSS文件无法获取参数.

是什么原因?

javascript css parameters hyperlink

19
推荐指数
2
解决办法
1万
查看次数

添加内部查询不会更改执行计划

请考虑以下查询.

select * from contact where firstname like '%some%'

select * from 
    (select * from contact) as t1 
where firstname like '%some%'
Run Code Online (Sandbox Code Playgroud)

两个查询的执行计划相同并且同时执行.但是,我期望第二个查询将有一个不同的计划并执行得更慢,因为它必须从联系人中选择所有数据并应用过滤器.看起来我错了.

我想知道这是怎么回事?

数据库服务器:SQL Server 2005

sql performance sql-server-2005 sql-execution-plan

2
推荐指数
1
解决办法
56
查看次数

jQuery UI日期选择器

我正在显示生日选项,并使用了jquery ui日期选择器.问题是我想显示过去的日期,例如从1950年到2000年,但我不知道该怎么做,我试过这个,但它没有用:

$('#dob').datepicker({
    showOn: 'button',
    buttonImage: 'images/calendar.gif',
    buttonImageOnly: true,
    dateFormat: 'mm/dd/yy',
    changeYear: true,
    minDate: '-20Y',
    maxDate: '+1M +10D'
    });
Run Code Online (Sandbox Code Playgroud)

参考:

http://jqueryui.com/demos/datepicker/#min-max

更新:

以下是我正在做的事情,你可以通过在那里更新代码来解决这个问题:

http://jsbin.com/uyake

谢谢

jquery jquery-ui

1
推荐指数
1
解决办法
1061
查看次数

使用ruby Reg Expressions验证字符串?

如何验证以下字符串中的日期和时间是否为正确的格式,即年,月,日,然后是时间(4位数,2位数,2位数,然后是时间)

"Event (No 3) 0007141706 at 2010/04/27 11:48 ( Pacific )"
Run Code Online (Sandbox Code Playgroud)

谢谢

ruby regex

4
推荐指数
1
解决办法
500
查看次数

内存消耗iphone iOS 4中的电池吗?

在新的iOS4中,我们有快速的应用程序切换,当我们暂停应用程序时,一些数据仍然在内存和成本内存中.

所以,我只是想知道,与不使用内存相比,将数据留在内存中是否会更快地消耗任何电池寿命?知道编程应用程序使用更少的内存,以便整个iPhone电池更好,这将是一件好事

我只想知道更多关于内存和电池的信息,而不是有任何问题.

iphone ios4

0
推荐指数
1
解决办法
807
查看次数