小编Utk*_*glu的帖子

如何通过Java找到午夜过去的秒数?

我需要一个函数,它给我从午夜过了几秒钟.我目前正在使用,System.currentTimeMillis()但它给了我像UNIX一样的时间戳.

如果我能得到毫秒,这对我来说是一个奖励.

java time

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

使用专有的Nvidia驱动程序在Linux上出现多个OpenGLX渲染上下文失败

当我尝试在各个线程上运行超过128个当前OpenGLX渲染上下文时,调用glXMakeCurrent开始失败.

Display *display = XOpenDisplay(":0")
Window root_win = RootWindow(display, screen);
Window win = XCreateWindow (display, root_win, ...)
GLXContext context = glXCreateContext(display, visinfo, 0, True);

glXMakeCurrent(display, win, context); <---- Fails here on 128th
Run Code Online (Sandbox Code Playgroud)

此问题仅发生在专有的Nvidia驱动程序和Nvidia GPU上.我无法使用英特尔GPU重现.

复制代码glx.cpp:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glx.h>
#include <GL/glxext.h>
#include <string.h>
#include <unistd.h>
#include <thread>
#include <vector>
#include <mutex>
#include <condition_variable>
#include <chrono>

#define MAX_CONTEXTS 200;

std::mutex mutex;
std::condition_variable cond;
bool will_stop = false;

int numSuccessfulContexts = 0;
#define EXIT_IF(condition, ...) if …
Run Code Online (Sandbox Code Playgroud)

c++ linux opengl nvidia glx

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

有没有办法在类定义后设置元类?

为了设置类的元类,我们使用该__metaclass__属性.在定义类时使用元类,因此在类定义无效后显式设置元类.

当我尝试显式设置元类时会发生这种情况;

>>> class MetaClass(type):
    def __new__(cls, name, bases, dct):
        dct["test_var"]=True
        return type.__new__(cls, name, bases, dct)
    def __init__(cls, name, bases, dct):
        super(MetaClass, cls).__init__(name, bases, dct)


>>> class A:
    __metaclass__=MetaClass


>>> A.test_var
True
>>> class B:
    pass

>>> B.__metaclass__=MetaClass
>>> B.test_var

Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    B.test_var
AttributeError: class B has no attribute 'test_var'
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的想法是重新定义整个类并__metaclass__以某种方式动态添加属性.或者你知道在类定义之后设置元类的更好方法吗?

python metaclass

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

如何在Python中分析多线程程序的内存?

有没有办法在Python中分析多线程程序的内存?

对于CPU分析,我使用cProfile为每个线程创建单独的分析器统计信息,然后将它们组合起来.但是,我找不到使用内存分析器执行此操作的方法.我正在使用heapy.

有没有办法像cProfile一样整合大量的统计数据?或者你会建议哪些内存分析器更适合这项任务.

有人提出了一个相关问题,要求分析多线程程序的CPU使用情况:如何在Python中分析多线程程序?

关于内存分析器的另一个问题是:Python内存分析器

python multithreading profiling memory-profiling

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

使用C++以毫秒为单位找到实时的好方法是什么?

我目前正在使用库clock()提供的功能time.h.它给我时间精度高达毫秒.但是,它的时间基于CPU时钟周期.我需要一个不使用CPU周期的函数clock(),将使用系统实时,精度高达毫秒.

我正在使用linux与gcc编译器.

c++ linux time datetime

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

如何确定程序是否与子进程崩溃?

我的应用程序创建子进程.通常,这些过程运行和终止没有任何问题.然而,有时,他们会崩溃.

我目前正在使用python 子进程模块来创建这些子进程.我通过调用Popen.poll()方法检查子进程是否崩溃.不幸的是,由于我的调试器在崩溃时被激活,因此轮询不会返回预期的输出.

我希望能够看到调试窗口(不终止它),并且仍然能够检测进程是否在python代码中崩溃.

有没有办法做到这一点?

python debugging subprocess popen

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

InnoDB磁盘使用开销

我有一个表,其中包含两个32位整数。这两个整数用于创建聚簇索引。用于创建表的SQL如下,

CREATE TABLE `a` (
  `var1` int(10) unsigned NOT NULL,
  `var2` int(10) unsigned NOT NULL,
  PRIMARY KEY (`var2`,`var1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)
  • 该表中有6921338行(使用检索SELECT COUNT(*) FROM a
  • 该表使用358580224字节的空间(使用检索SHOW TABLE STATUS

根据我的计算,每一行使用51.8个字节。我知道InnoDB在存储行时会产生开销。但是,使用MySQL网站,我计算出行大小应为26个字节(5个字节的标头,8个字节的整数,6个字节的事务ID和7个字节的滚动指针字段)。

我试图减小行的大小,因为该表可能会填充多达1600亿条记录。

我的计算中缺少什么?如何优化表以使用更少的空间?还是应该切换到其他数据库引擎?

更新资料

我对此表的查询;

INSERT INTO a(var1,var2) VALUES(INTEGER,INTEGER),(INTEGER,INTEGER),...,(INTEGER,INTEGER);
SELECT var1 FROM a WHERE var2=INTEGER;
DELETE FROM a WHERE var2=INTEGER;
Run Code Online (Sandbox Code Playgroud)

mysql database database-design innodb

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

如何限制反向SSH调整端口?

我们有一个公共服务器,它接受来自防火墙后面的多个客户端的SSH连接.

这些客户端中的每一个都通过使用ssh -R从其端口80的Web服务器到公共服务器的命令来创建反向SSH隧道.

反向SSH隧道的目标端口(在客户端)是80,源端口(在公共服务器端)取决于用户.我们计划为每个用户维护一个端口地址映射.

例如,客户端A将其端口80上的Web服务器隧道传送到我们的端口8000; 客户B从80到8001; 客户C从80到8002.

Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver

Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver

Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
Run Code Online (Sandbox Code Playgroud)

基本上,我们要做的是将每个用户绑定到一个端口,并且不允许它们隧道到任何其他端口.

如果我们使用SSH的前向隧道功能ssh -L,我们可以通过使用permitopen=host:port配置允许通过隧道传输哪个端口.但是,反向SSH隧道没有等价物.

有没有办法限制每个用户的反向隧道端口?

linux ssh ssh-tunnel

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

什么是处理反斜杠转义字符的好方法?

我有一个以下格式的字符串;

s="part1,part2,part3,part4"
Run Code Online (Sandbox Code Playgroud)

我可以通过调用s.split(",")命令将字符串拆分成碎片.

现在,问题是如果我在字符串中有反斜杠转义逗号怎么办?假设我有以下字符串,

s="part1,part2,pa\\,rt3,part4"
Run Code Online (Sandbox Code Playgroud)

我希望能够得到["part1","part2","pa,rt3","part4"]结果.

我最初的想法是\,用一个不存在的字符串替换,然后使用split命令拆分字符串,并用逗号替换不存在的字符串.

你能想出一个更好的方法来解决这个问题吗?

python string escaping

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

HashSet的随机开始索引迭代器

我使用HashSet add(); remove(); clear(); iterator();方法.到目前为止,一切都像一个魅力.但是,现在我需要满足不同的要求.

我希望能够从某个索引开始迭代.例如,我希望以下两个程序具有相同的输出.

计划1

Iterator it=map.iterator();
for(int i=0;i<100;i++)
{
    it.next();
}
while (it.hasNext())
{
  doSomethingWith(it.next());
}
Run Code Online (Sandbox Code Playgroud)

计划2

Iterator it=map.iterator(100);
while (it.hasNext())
{
  doSomethingWith(it.next());
}
Run Code Online (Sandbox Code Playgroud)

我不想使用程序1的原因是它会产生不必要的开销.从我的研究中,我找不到一种创建带起始索引的迭代器的实用方法.

所以,我的问题是,在最小化开销的同时实现目标的好方法是什么?

谢谢.

java data-structures

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

在Python中附加关联数组

我最近一直都在寻找解决方案,到目前为止无济于事.我来自php到python,遇到了关联数组的差异,我现在不确定要克服.

走这条线:

data[user]={i:{'item':row[0],'time':row[1]}}
Run Code Online (Sandbox Code Playgroud)

data[user]显然覆盖了我的每个条目,因为它没有附加,它只是每次都替换数据.

在PHP中,如果我想在for循环中追加新的数据,我可以这样做

data[user][i][]=array('item'=>'x','time'=>'y'); // crude example
Run Code Online (Sandbox Code Playgroud)

在python中,我做不到:

data[user][]={i:{'item':row[0],'time':row[1]}}
Run Code Online (Sandbox Code Playgroud)

它对我的barfs []

我也做不到:

data[user][i]={'item':row[0],'time':row[1]}
Run Code Online (Sandbox Code Playgroud)

通过循环我是我的迭代器...我认为这是因为data[user]尚未定义,但是,操作?我已经创建了data={},但我还没有将用户填充为密钥.

在python中,我必须先定义一个键才能定义它,包括一个子键吗?

我尝试了很多.append()选项和其他奇怪的技巧,但我想知道这样做的正确方法.

做到:

data[user,i]={'item':row[0],'time':row[1]}
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.

我的正确方法是什么,python朋友?

python dictionary list append

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