问题列表 - 第17453页

是否有开源WebSockets(JavaScript)XMPP库?

有没有人写过一个使用WebSockets的开源XMPP库,是否应该由浏览器运行?

javascript xmpp

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

存储过程性能随机下降; 琐碎的ALTER修复它.为什么?

我在SQL Server 2005上有几个存储过程,我注意到从我在四个服务器的IIS6 Web场中运行的ASP.NET MVC应用程序调用时,会突然花费很长时间才能完成.正常,预期执行时间不到一秒; 意外的异常执行时间为25-45秒.这个问题似乎永远无法纠正.

但是,如果我更改存储过程(即使我没有在过程中更改任何内容,除了可能为SSMS修改命令创建的脚本添加空格),完成时间将恢复为预期的完成时间.

IIS和SQL Server在不同的盒子上运行,两者都运行Windows Server 2003 R2 Enterprise Edition.SQL Server是标准版.所有机器都配备双Xeon E5450 3GHz CPU和4GB RAM.使用TCP/IP协议通过千兆以太网访问SQL Server(不确定是什么物理介质).

Web场中的所有Web服务器都存在此问题.当我从开发机器上的SSMS中的查询窗口调用该过程时,该过程在正常时间完成.这很奇怪,因为我认为SSMS使用与.NET中相同的SqlClient驱动程序.当我将Web应用程序的开发实例指向生产数据库时,我再次得到异常长的完成时间.如果我的SqlCommand超时太短,我明白了

System.Data.SqlClient.SqlException:超时已过期.操作完成之前经过的超时时间或服务器没有响应.

问题:为什么在存储过程中执行ALTER而不实际更改其中的任何内容,将完成时间恢复到不到一秒,如预期的那样?

编辑:为了澄清,当应用程序运行缓慢时,它同时在SSMS中使用相同的参数运行良好.我能辨别的唯一区别是登录凭证(下次我注意到行为时,我将使用相同的信用卡从SSMS检查).最终目标是使过程以预期的速度持续运行,而无需偶尔进行干预.

解决方案:我想更新此问题以防其他人遇到此问题.根据以下答案的引导,我能够始终如一地重现这种行为.为了测试,我利用sp_recompile并传递了一个敏感的sprocs.然后,我从我的浏览器发起一个网站请求,该请求将使用非典型参数调用sproc.最后,我向一个页面发起网站请求,该页面使用典型参数调用sproc,并观察由于sproc调用上的SQL超时而导致请求未完成.

要在SQL Server 2005上解决此问题,我已经OPTIMIZE FOR为我添加了提示SELECT.易受攻击的sprocs都具有本文中描述的"一体化"模式.这种模式肯定不理想,但考虑到项目的时间表,这是必要的权衡.

.net sql-server performance stored-procedures

5
推荐指数
2
解决办法
2300
查看次数

C#:可以为nullable类型(int?)对象?

我从这篇文章中了解到C#中的值类型不是对象.也就是说,它们不会从System.Object继承.

假设我的逻辑到目前为止,是可以为空的类型,例如int ?,对象.他们是从Object继承的吗?

如果是这样,它们是否受到与其他对象相同的规则和约束,或者是否存在管理其行为的特殊规则?

作为参考,这个问题来自对null coalesce运算符的工作的调查.

c# nullable object

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

iPhone UIActivityIndi​​catorView无法启动或停止

当我在UIActivityIndi​​catorView上调用startAnimating时,它无法启动.为什么是这样?

[这是一个博客风格的自我回答的问题.下面的解决方案对我有用,但也许还有其他更好的方法?]

iphone uiactivityindicatorview

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

分析Mnesia查询

我们的Mnesia DB运行缓慢,我们认为它应该更快一些.

因此,我们需要对其进行分析并找出正在发生的事情.

有许多选项表明自己:

  • 运行fprof,看看时间在哪里
  • 运行cprof并查看调用了哪些函数

然而,这些都是相当标准的性能监控样式工具.问题是我如何实际进行查询分析 - 哪些查询花费的时间最长.如果我们是Oracle或MySQL商店,我们只会运行一个查询分析器,它将返回需要很长时间才能运行的各种查询.这不是Mnesia似乎可用的工具.

所以问题是:

  • 有什么技术来描述Mnesia
  • 有什么工具来描述Mnesia - 我认为没有,但证明我错了:)
  • 您是如何分析查询并优化mnesia数据库安装的

根据讨论扩大

fprof作为性能分析工具的一个问题是它只会告诉您正在查看的特定查询.所以fprof告诉我X很慢,我调整它以加快速度.然后,低,看,操作Y(这是足够快)现在是狗慢.因此,我描述了Y,并意识到快速制作Y的方法是让X变慢.所以我最终做了一系列双边权衡......

我真正需要的是一种管理多边权衡的方法.我现在记录了2个实际用户活动的度量标准,我可以重放.这些日志代表了我想要优化的内容.

SQL数据库上的"正确"查询分析器将能够分析SQL语句的结构,例如具有以下形式的所有语句:

SELECT [fieldset] FROM [table] WHERE {field = *parameter*}, {field = *parameter*}
Run Code Online (Sandbox Code Playgroud)

并且说这个形式的285个查询平均需要0.37ms才能运行

他们说出了神奇的答案:这个表格的17个查询需要运行6.34秒并在表X上进行全表扫描,你应该在字段Y上放一个索引

当我在一组有代表性的用户活动中得到这样的结果集时,我可以开始在这一轮中进行权衡 - 并设计一个测试模式.

测试模式类似于:

  • 活动X会使查询A,C和C更快,但查询E和F会更慢
  • 测试和测量
  • 然后批准/不批准

我一直在使用Erlang足以"知道"没有像这样的查询分析器,我想知道的是其他人(必须有这个问题)对于mnesia优化的"理由".

database erlang profiling mnesia

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

让Doctrine使用MySQL"FORCE INDEX"

我在Doctrine的DQL中有一个查询,它需要能够使用MySQL的"FORCE INDEX"功能,以便大大缩短查询时间.以下是查询在纯SQL中的基本外观:

SELECT id FROM items FORCE INDEX (best_selling_idx)
WHERE price = ... (etc)
LIMIT 200;
Run Code Online (Sandbox Code Playgroud)

我假设我必须扩展一些Doctrine组件才能用DQL执行此操作(或者有没有办法将任意SQL注入到Doctrin的查询之一?).有人有主意吗?

谢谢!

php mysql doctrine

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

从python中的列表创建生成器表达式

在Python中执行以下操作的最佳方法是什么:

for item in [ x.attr for x in some_list ]:
    do_something_with(item)
Run Code Online (Sandbox Code Playgroud)

这可能是一个小问题,但是列表理解不是生成我们不需要的新列表而只是占用内存吗?如果我们能够制作类似迭代器的列表理解,那不是更好吗?

python functional-programming list generator

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

JavaScript中的土耳其语案例转换

我想在我想要的语言环境中将字符串转换为JavaScript中的大小写.我认为标准功能喜欢toUpperCase()并且toLocaleUpperCase()不满足这种需求.toLocale函数不能正常运行.

例如,在我的系统上的Safari 4,Chrome 4 Beta,Firefox 3.5.x中,它会错误地转换带有土耳其语字符的字符串.该浏览器响应navigator.language为"en-US","tr","en-US"分别.但是Accept-Lang我无法在浏览器中找到用户的设置."tr"虽然我已经将每个浏览器土耳其语区域设置为首选,但只有Chrome会给我 我认为这些设置仅影响HTTP标头,但我们无法通过JavaScript访问这些设置.

Mozilla文档中,它说

字符串中的字符将转换为...,同时尊重当前区域设置.对于大多数语言,这将返回相同的...

我认为它对土耳其语有效,它没有区别它配置为en或tr.在土耳其应该转换"D?NÇ""dinç""DINÇ""d?nç"反之亦然.

有没有满足这种需求的JavaScript库?我认为它不仅应该在用户的语言环境中正确转换,而且还应该支持通过locale参数进行转换.因为开发人员无法访问用户配置的首选语言.

javascript turkish lowercase internationalization uppercase

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

for循环中bash中的简单数学语句

我是新手来编写脚本并且通常可以避免所有成本但是我需要编写一个bash脚本来执行远程集群上的一些简单的事情.我遇到了一个执行以下操作的for循环问题:

for i in {1..20}
do
    for j in {1..20}
    do
        echo (i*i + j*j ) **.5  <--- Pseudo code!
    done
done
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个简单的数学问题吗?我$到处都扔了,不能写得好.如果你能帮助我理解变量在bash for循环中的命名/赋值方式以及bash数学解释的局限性(你如何做平方根?)我将非常感激.谢谢!

math syntax bash for-loop

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

将链接列添加到ASP.NET GridView

我想输出可点击的新闻标题列表.到目前为止,我可以打印出标题列表,因为我在VS 2010的设计器视图中拖放了NewsHeadline表.您认为我应该如何使列表元素可点击?我找了一个URL属性,但我没有看到它.我需要包裹<a href吗?

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="SqlDataSource1" 
        EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:BoundField DataField="NewsHeadline" HeaderText="NewsHeadline" 
                SortExpression="NewsHeadline" />
        </Columns>
    </asp:GridView>

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
        ProviderName="<%$ ConnectionStrings:ConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [NewsHeadline] FROM [NewsTable]"></asp:SqlDataSource>
   </form>
Run Code Online (Sandbox Code Playgroud)

asp.net gridview hyperlink

20
推荐指数
2
解决办法
7万
查看次数