最近我用Python/Django为我的公司开发了一个计费应用程序.几个月来一切都很好,但现在我观察到由于越来越多的用户使用该应用程序,性能正在下降.现在问题是应用程序现在对财务团队非常关键.现在,财务团队正在追寻性能问题.我没有其他选择,只能找到一种方法来提高计费应用程序的性能.
那么你们是否知道python中的任何性能优化技术将真正帮助我解决可伸缩性问题
伙计们我们使用的是mysql数据库,它托管在Linux机器上的apache web服务器上.其次我注意到的是,所有应用程序都很慢,而不是数据库事务部分.例如,一旦加载了应用程序,它就可以正常工作,但如果它们导航到该应用程序上的其他链接,则需要花费大量时间.
是的,我们正在使用HTML,CSS和Javascript
我正在编写一个不断给我错误的脚本.在跟踪它后,我发现syscomments表将其内容存储在多行中,如果信息长到varchar(8000),我相信.
为什么syscomments表将数据分成多行而不是单个较大的行?性能?
我即将使用Google的网站优化工具在我网站的主页上进行a/b测试.我的问题是:google的蜘蛛索引中有哪些替代页面?他们都是?我在谷歌或GWO页面上找不到任何关于此的信息.
我有一个我希望与正则表达式匹配的电话号码.电话号码的格式必须符合以下条件:
(123)123-4567 x12345
扩展名是可选的.扩展名也必须包含1-5个数字.下面是我写的正则表达式.
^\(\d{3}\) \d{3}-\d{4}( x\d\d?\d?\d?\d?)?$
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来检查扩展而不是
x\d\d?\d?\d?\d?
Run Code Online (Sandbox Code Playgroud)
我可以说1-5次出现\ d而不是上面的一些如何?
有谁知道它是否可以设置模拟器中可用的内存量?
我假设模拟器将尽可能多地从系统中使用内存,但这使得重新创建某些低内存崩溃/错误变得更加困难.
我需要在C++中从Linux向SQL Server数据库写一些数据.
我找到了这个sqlapi.com
但我认为,首先必须安装ODBC驱动程序并且必须工作.
我以下是adminlife.net/allgemein/mssql-zugriff-unter-debian-etch-mit-unixodbc-und-freetds/或 http://b.gil.megiteam.pl/2009/11/linux-odbc-to -mssql /
但它没有用.端口1433似乎已关闭($ sudo nmap -PN -sU -p 1433 192.168.56.101 - > port"filtered")
isql -v sqlexpress sa - >等待没有响应或得到"无法连接到sql"
从其他带有Windows的PC我在SQL Server中写入数据没有问题,因此服务器应该正确配置为远程访问.
有任何想法吗?
我在WPF中创建一个数字TextBox ,有两个按钮来增加和减少值.
我创建了两个RoutedCommand来管理behia,它们运行良好.我只想解决一个问题.我希望控件在执行增加或减少命令时通知绑定到其TextProperty的所有对象.
目前,只有当我将焦点更改为另一个控件时,它才会发送通知
非常感谢任何帮助,谢谢
如果想要apply一个功能,即矩阵的每一行,但也希望将该行的数量用作该函数的参数,该怎么办?例如,假设您想获得矩阵每行中数字的第n个根,其中n是行号.是否有另一种方法(apply仅使用)而不是将行号绑定到初始矩阵,就像这样?
test <- data.frame(x=c(26,21,20),y=c(34,29,28))
t(apply(cbind(as.numeric(rownames(test)),test),1,function(x) x[2:3]^(1/x[1])))
Run Code Online (Sandbox Code Playgroud)
PS实际上,如果测试真的是一个矩阵: test <- matrix(c(26,21,20,34,29,28),nrow=3) ,rownames(测试)没有帮助:(谢谢.
脚本
我有以下方法:
public void AddItemSecurity(int itemId, int[] userIds)
public int[] GetValidItemIds(int userId)
Run Code Online (Sandbox Code Playgroud)
最初我在考虑存储在表单上:
itemId -> userId, userId, userId
Run Code Online (Sandbox Code Playgroud)
和
userId -> itemId, itemId, itemId
Run Code Online (Sandbox Code Playgroud)
AddItemSecurity基于我如何从第三方API获取数据,GetValidItemIds我是如何在运行时使用它的.
可能有2000个用户和1000万个项目.项目ID在表格上:2007123456,2010001234(前10位代表年份的10位数字).
AddItemSecurity不必执行超快,但GetValidIds需要亚秒.此外,如果现有更新,itemId我需要为列表中不再包含的用户删除该itemId.
我正在考虑如何以最佳方式存储它.最好在磁盘上(带缓存),但我希望代码可维护和清洁.
如果项目id从0开始,我考虑MaxItemId / 8为每个用户创建一个字节数组长度,如果项目存在与否则设置一个真/假位.这将限制每个用户的阵列长度超过1mb,并提供快速查找以及更新每个用户列表的简便方法.通过使用.Net 4框架将其作为内存映射文件持久化,我认为我也可以获得不错的缓存(如果机器有足够的RAM),而不是自己实现缓存逻辑.解析id,剥离年份,每年存储一个阵列可能是一个解决方案.
ItemId - > UserId []列表可以直接序列化到磁盘并使用法线FileStream进行读/写,以便持久保存列表并在发生更改时进行区分.
每次添加新用户时,所有列表也必须更新,但这可以在每晚完成.
题
我应该继续尝试这种方法,还是应该探索其他途径?我认为SQL服务器执行速度不够快,而且会产生开销(至少如果它托管在不同的服务器上),但我的假设可能是错误的.任何关于此事的想法或见解都表示赞赏.我想尝试解决它而不添加太多硬件:)
[更新2010-03-31]
我现在已经在以下条件下使用SQL Server 2008进行了测试.
如果我运行一个线程,它的平均值为0.2秒.当我添加第二个线程时,它会上升到0.4秒,这仍然可以.从那里开始,结果正在减少.添加第三个线程会带来很多查询,最多可达2个.第四个线程,最多4秒,第五个线程查询一些查询,最多50秒.
即使在一个线程上,CPU也在进行屋顶处理.我的测试应用程序需要一些由于快速循环,并sql其余.
这使我得出结论,它不会很好地扩展.至少不在我测试的硬件上.有没有办法优化数据库,比如存储每个用户的int数组而不是每个项目一个记录.但这使得删除项目变得更加困难.
[更新2010-03-31#2]
我使用相同的数据进行了快速测试,将其作为内存映射文件中的位.它表现得更好.六个线程产生的访问时间介于0.02s和0.06s之间.纯粹的记忆力.映射文件由一个进程映射,并由六个其他进程同时访问.并且由于sql base占用了4GB,磁盘上的文件占用了23mb.
我在c#中读取一些gml文件时遇到问题.我的文件没有架构或命名空间,看起来像这个问题的文件:
只有像这样的模式:
<gml:Polygon srsName='http://www.opengis.net/gml/srs/epsg.xml#4283'>
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coord>
<gml:X>152.035953</gml:X>
<gml:Y>-28.2103190007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.035957</gml:X>
<gml:Y>-28.2102020007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.034636</gml:X>
<gml:Y>-28.2100120007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.034617</gml:X>
<gml:Y>-28.2101390007845</gml:Y>
</gml:coord>
<gml:coord>
<gml:X>152.035953</gml:X>
<gml:Y>-28.2103190007845</gml:Y>
</gml:coord>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用XDocument.Load方法读取文档时,我得到一个异常说:'gml' namespace is not defined.
我有很多gml文件,所以我不想将架构和命名空间添加到我的所有文件中.有人知道如何阅读我的文件吗?