Question:
I've profiled my Python program to death, and there is one function that is slowing everything down. It uses Python dictionaries heavily, so I may not have used them in the best way. If I can't get it running faster, I will have to re-write it in C++, so is there anyone who can help me optimise it in Python?
I hope I've given the right sort of explanation, and that you can make some sense of my code! …
有谁知道可以处理庞大数据集的Javascript图表库?
"巨大",我的意思是绘制一个大约1,000行和25,000个数据点的折线图.(每行的点数分布不均匀.很多行的点数很少,但有些点数最多为4,000.)这是一个示例数据文件.
目前我正在使用Highcharts,但是在绘制示例文件方面它太慢了.这是我的测试网站,使用Highcharts绘制示例数据文件.警告:转到该页面会耗尽您的处理器一段时间:)
我不想使用Flash或Silverlight.
我希望使用Javascript,以便我的用户可以缩放+平移图表,并打开/关闭线等.但如果这是任何Javascript图表库处理的数据太多,那么我将不得不图服务器端.
我第一次在这里发帖,所以希望我以正确的方式问我的问题,
将元素添加到Python字典后,是否可以让Python告诉您添加该元素是否导致了冲突?(在找到放置元素的位置之前,碰撞解决策略探测了多少个位置?)
我的问题是:我使用字典作为更大项目的一部分,经过大量的分析后,我发现代码中最慢的部分是处理使用字典实现的稀疏距离矩阵.
我正在使用的键是Python对象的ID,它们是唯一的整数,所以我知道它们都散列为不同的值.但是将它们放在字典中仍然可能导致原则上的冲突.我不相信字典冲突会减慢我的程序速度,但我想从我的查询中删除它们.
因此,例如,给出以下字典:
d = {}
for i in xrange(15000):
d[random.randint(15000000, 18000000)] = 0
Run Code Online (Sandbox Code Playgroud)
你能让Python告诉你创建它时发生了多少次碰撞吗?
我的实际代码与应用程序纠缠在一起,但上面的代码生成了一个与我正在使用的字典非常相似的字典.
重复:我不认为碰撞会减慢我的代码速度,我只是想通过显示我的字典没有多次碰撞来消除这种可能性.
谢谢你的帮助.
编辑:实现@Winston Ewert解决方案的一些代码:
n = 1500
global collision_count
collision_count = 0
class Foo():
def __eq__(self, other):
global collision_count
collision_count += 1
return id(self) == id(other)
def __hash__(self):
#return id(self) # @John Machin: yes, I know!
return 1
objects = [Foo() for i in xrange(n)]
d = {}
for o in objects:
d[o] = 1
print collision_count
Run Code Online (Sandbox Code Playgroud)
请注意,当您__eq__在类上定义时,TypeError: …
我有一个运行科学模拟的C程序,并在OpenGL窗口中显示可视化.我希望将此可视化转换为视频,最终将在YouTube上播放.
问题:从C/OpenGL程序制作视频的最佳方法是什么?
我过去的方式是使用屏幕捕获程序,但这是非常耗费人力的(必须启动/停止屏幕捕获程序,保存视频文件等等).似乎应该有一种方法可以自动化从C程序中制作视频的过程.然后,我可以让它在一夜之间运行,并在早上有20个视频可以浏览,并选择最适合放在YouTube上的视频.
YouTube 推荐 "640x480分辨率的MPEG4(Divx,Xvid)格式".
我正在使用GLUT 3.7.6_3,如果这有所不同.如果有充分的理由,我可以改变窗口系统.
我正在运行Windows(XP),所以更喜欢在Windows上运行的答案,但Linux的答案也可以.如果在Windows上无法轻松完成视频内容,我可以使用Linux.我有一个朋友为视频的每一帧制作.png图像,然后在Linux上使用"mencoder"将它们拼接在一起.
dictionary ×2
optimization ×2
python ×2
c ×1
charts ×1
dataset ×1
javascript ×1
opengl ×1
video ×1
windows ×1