问题列表 - 第40823页

生产分析代码

我正在考虑实现在生产服务器上配置代码并想要一些最佳实践建议的想法.显然,这是一个坏主意,配置文件,因为增加的开销的所有请求,所以我一直在寻找到一些技术,会随机调用每个请求的探查.每10,000个请求中有1个配置文件.

我知道有一种方法可以实现与Facebook的这样一个任务XHProf的探查,但使用的XDebug希望的是类似的解决方案.

所以我的问题是(假设xdebug是分析器):

  1. 这种功能是否可取?我想从生产环境中获取一些真实世界的数据,但是如果它意味着由于开销而破坏用户体验.
  2. 在生产中安装xdebug是否以任何方式打开服务器攻击者/开发者(假设调试器未启用)?这种类型的设置是否有锅炉板配置?
  3. 触发分析器获得适当样本量的最佳方法是什么?

对此事的任何其他见解将非常感激.

php profiling xdebug xhprof

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

对具有不同参数的类使用工厂模式

我有一个非常简单的工厂,需要一个枚举作为它的一个参数,以确定应创建的对象的类型,并正在创建的所有对象的共有的其他参数.

当我为工厂添加更多类型来创建我的对象时,构造函数的参数开始变化,例如:

public class someFactory {
    public someFactory() {
    }

    public SomeObject newObject(Type type, Object data) {
        return this.newObject(type, data, "");
    }

    public SomeObject newObject(Type type, Object data, Object stringOrObject) {
        SomeObject someObject = null;

        if (type != null) {
             switch(type) {
                 case CREATE:
                     someObject = new CreateObject(data);
                     break;
                 case DELETE:
                     someObject = new DeleteObject(data, (String)stringOrObject);
                     break;
                 case EDIT:
                     someObject = new EditObject(data, (Object)stringOrObject);
                     break;
                 default:
                     break;
             }
        }

        return someObject;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是不是应该使用工厂,只是使用正确的参数实例化不同的类型,或者可以以某种方式改进上述内容以使其更灵活?

java design-patterns factory factory-pattern

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

从DllMain调用LoadLibrary

MSDN说:

它不能调用LoadLibrary或LoadLibraryEx函数(或调用这些函数的函数),因为这可能会在DLL加载顺序中创建依赖循环.这可能导致在系统执行其初始化代码之前使用DLL.

我试图LoadLibrary从DllMain 打来电话,什么也没发生.

我看到的唯一问题是加载的DLL将在我的DllMain执行的其余部分之前使用我的DLL中的函数.

为什么我不能在DllMain中调用LoadLibrary?

编辑:

好吧,我意识到我不能在DllMain中调用LoadLibrary只是因为我必须像其他信徒一样相信 MSDN(我在那里看到了一些错误的东西,但我也应该忘记它们).
并且因为在较新版本的Windows中可能会发生某些事情(尽管过去十年没有任何变化).

但是,任何人都可以显示一个代码,它会重现在LoadLibraryDllMain中调用时发生的事情吗?在任何现有的Windows操作系统?
不只是在另一个内部调用一个单例初始化函数,而是LoadLibrary在DllMain中?

language-agnostic windows dll winapi loadlibrary

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

在Mac OS上使用GCC为MS-DOS编译C程序(DOSBox)

我在Mac OS X上运行Snow Leopard下的GCC 4.2.1.我想用它来编译15年前我写的一些旧的C/C++ DOS游戏,以便我可以在DosBox下运行它们.要做到这一点,他们显然需要以DOS可执行格式编译,有人能告诉我如何使用GCC这样做吗?

谢谢!

c c++ macos gcc dos

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

删除不可见的控件

(在VS 2008中)我有一个usercontrol,它位于设计视图的属性列表中,但是我看不到实际的控件,并且它会产生一些错误.当我无法选择它时,如何将其删除?

vb.net

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

使用"后退"按钮时,选择菜单未恢复

考虑一个具有选择菜单的网页,该菜单包含与菜单的onchange事件相关联的JavaScript事件处理程序,该事件在被触发时使用新的查询字符串重新加载页面(使用菜单中选择的值).

问题:当用户点击"返回"按钮时,页面DOM将从缓存中恢复,但不会退出选择菜单的状态.

受影响的浏览器: Firefox和Safari(使用后退/前向缓存)

示例:

<script language="javascript" type="text/javascript">
function reloadPage() {
    var menu = document.getElementById("select1");
    var val = menu.options[menu.selectedIndex].value;
    window.location.href = 'test.html?select1=' + val;
} 
</script>
<form action="#" method="get" name="form1">
    <select name="select1" id="select1" onChange="reloadPage();">
    <option value="A" selected>Option A</option>
    <option value="B">Option B</option>
    <option value="C">Option C</option>
    <option value="D">Option D</option>         
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

查看此页面并注意到选项A已被选中.然后选择一个不同的选项(比如选项C) - 重新加载页面(带有查询字符串,?select1 = C).然后点击后退按钮 - 选择菜单继续显示选项C.

问题:有谁知道为什么选择菜单没有恢复以及如何解决这个问题?我过去曾使用JavaScript强制页面上的表单字段与查询字符串匹配,但是这种方法存在问题(例如,FF和Safari通常不会在加载页面时执行窗口的onload事件缓存)这对我来说似乎是一个黑客攻击.

有什么建议?

更新:我刚刚想到可能发生的事情如下:

  1. 选项C被选中
  2. 页面被缓存
  3. JavaScript加载新的URL
  4. 按下后面的按钮
  5. 选项C已恢复,因为它是在重新加载JavaScript /页面之前缓存的内容.

所以我认为这不是浏览器没有恢复选择菜单状态的问题,这是一个时间问题.

javascript

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

在ORACLE中,是否有一种方法可以使用两个表将多行行连接成一个行,其中最终值用逗号分隔?

有没有办法使用两个表连接多个行行,其中值在ORACLE中用逗号分隔?

例:

表格1

IdN Name 
---------
1   A 
2   B 
3   C 
Run Code Online (Sandbox Code Playgroud)

表2

IdC Car
------------
1    Ferrari
1    BMW
2    SEAT
2    FIAT
3    FORD
Run Code Online (Sandbox Code Playgroud)

结果如下:

A    Ferrari,BMW
B    SEAT,FIAT
C    FORD
Run Code Online (Sandbox Code Playgroud)

我想知道是否有这样的事情:

SELECT NAME,CAR
FROM TABLE1, TABLE2
where TABLE1.IdN=TABLE2.IdC
Run Code Online (Sandbox Code Playgroud)

这返回类似于:

法拉利
宝马
B座椅
B菲亚特
福特

有一种简单的方法可以用逗号分隔值"连接"到一行吗?

sql oracle

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

使用ASP.NET的棱镜

我的公司正在研究ASP.NET和Prism.我们想知道我们可以在两个选项之间获得多少代码重用.

正如我所看到的,Prism有这些"部分":

  • 壳牌(Bootstrapper等)
  • 模块
  • 服务(不是网络服务)
  • 地区
  • 松耦合事件(IEventAggregator)
  • Unity(虽然这是一个独立的产品)

在我看这个时,唯一必须与Silverlight/WPF一起使用的部分是Regions.

shell可能有点棘手,但我认为它可以在ASP.NET应用程序中完成.我也认为模块(非区域提供模块)也应该可行.使用IEventAggregator和Unity应该很容易.

我唯一的问题是我在ASP.NET编程方面并不是很有经验,所以我不确定我的假设.我会喜欢一些熟悉Prism和ASP.NET的人反馈,然后再讨论这个问题(在我的公司).

基本上,我想制作将运行Web服务和业务逻辑的Prism模块.然后,我想要使用这些模块并在ASP.NET应用程序和WPF/Silverlight Prism模块(通过区域)中重新使用它们.

我是否通过尝试合并这两个系统来绘制一段艰难的旅程?

asp.net prism unity-container

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

在单元测试中使用Moq的问题

我一直在探索在单元测试中使用模拟对象,并且一直在尝试使用.NET的Moq框架.我在尝试测试从数据库返回域对象的服务层方法时遇到了一些问题.

这是我的设置:

    [SetUp]
    public void DoSetupTasks()
    {
        mockDao = new Mock<IHibernateDao>();
        _hibernateService = new HibernateService(mockDao.Object);
        mockDomainObject = new Mock<DomainBase>();
        dmBase = new DomainBase()
        {
            Id = 5
        };
    }
Run Code Online (Sandbox Code Playgroud)

这是我遇到问题的单元测试.该方法FindById()根据给定的ID和Type返回DomainBase对象.

    [Test]
    public void TestFindById()
    {
        mockDomainObject.Setup(dmb => dmb.Id.Equals(It.IsAny<long>())).Returns(true);
        mockDao.Setup(dao => dao.FindById(
            It.IsAny<long>(),
            It.IsAny<Type>()
        )).Returns(mockDomainObject.Object);

        _hibernateService.FindById(dmb.Id, typeof(DomainBase));
        mockDomainObject.VerifySet(dmb => dmb.Id = dmBase.Id);
    }
Run Code Online (Sandbox Code Playgroud)

当我运行单元测试时,它会抛出以下异常:

Exception: Invalid setup on a non-virtual (overridable in VB) member: dmb => dmb.Id.Equals(It.IsAny<Int64>())

我承认,我对这个框架非常不熟悉.我一直在尝试关注它的一些教程,但我还没有弄明白.

.net c# nunit unit-testing moq

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

为什么= ViewData [""]会显示一个字符串但是对同一个字符串进行评估会失败?

//CHECK IF WE SHOULD SHOW THE PASSWORD HINT OR NOT
Setting passwordhints;

using (var db = new dbDataContext())
{
    passwordhints = (from c in db.Settings
            where c.Name == "ShowPasswordHints" && c.ID == _ID
            select c).FirstOrDefault();
}

if (passwordhints != null)
    //NOTE: .Value IS A STRING
    ViewData["ShowPasswordHints"] = passwordhints.Value;
else
    ViewData["ShowPasswordHints"] = "False";

//END PASSWORD HINTS CHECK
Run Code Online (Sandbox Code Playgroud)

是在控制器中,当我到达页面本身时我输出

<%=ViewData["ShowPasswordHints"]%> 进入标题标签,我可以在那里看到它说"真"(没有引号,我还用括号括起来检查空格,没有空格,它实际上只是真)

但是,当我这样做

<%if(ViewData["ShowPasswordHints"] == "True") {%> SHOW THIS <%}%>
Run Code Online (Sandbox Code Playgroud)

显示这从未出现过,到底是什么?

更新:但是,如果ViewData设置如此......它工作......嗯?

if (accountRepository.isLDAPEnabled(_ID))
                ViewData["LDAP"] = "True";
            else
                ViewData["LDAP"] = "False";
Run Code Online (Sandbox Code Playgroud)

视图... …

c# asp.net-mvc viewdata

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